【晴问算法】入门篇—数学问题—西西弗斯串

03-20 1182阅读

题目描述

【晴问算法】入门篇—数学问题—西西弗斯串
(图片来源网络,侵删)

对任意一个数字串,求出它数位上的偶数个数、奇数个数、数位总数,然后拼接起来得到一个新的数字串(不需要去掉前导零),接着对这个新的数字串同样执行上面的步骤,最终一定会得到123,也就是著名的西西弗斯串。

现有一个数字串n,可以对它执行零或正数次上面的步骤,请计算至少需要多少次可以得到西西弗斯串。

输入描述

一个数字串n(长度不超过10^4)。

输出描述

输出让n变为西西弗斯串的步骤数。

样例1

输入

12345

输出

2

解释

12345 => 235 => 123

样例2

输入

99

输出

3

解释

99 => 022 => 303 => 123

正解: 

#include 
#include 
using namespace std;
int main() {
    string nums;//用于存储输入的数字字符串
    cin >> nums;
    int counter = 0;//用于记录循环的次数
    while (nums != "123") {//直到字符串等于"123"为止
        int totalLen = nums.length();//首先获取nums的长度totalLen
        int oddCount = 0;
        for (unsigned  i = 0; i 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]