c++写代码 递归的方法假设我们从1开始写每一个数(1,2,3,4,5,……),一直写到N为止(N<99999999999999),一共要写多少个2呢。只需要输入一行,在一行中输入若干个整数N(N<99,9999,9999,9999) 输出 根据输入的N个数,计算得到的结果,在一行中显示。 样例输入 22 222 2222 123 1234 样例输出 6 69 892 27 389
时间: 2024-04-16 19:27:39 浏览: 127
你可以使用递归来解决这个问题。我们定义一个函数`countTwos`,该函数接受一个整数n,表示当前要写到的数。
在递归函数中,我们首先处理递归的终止条件。当n小于等于0时,不需要写任何2,返回0。
接下来,我们将n转换为字符串,然后遍历字符串的每一位。如果当前位是字符'2',则计数器加1。
然后,我们递归调用`countTwos`函数,传入n-1作为参数,表示继续写下一个数。
最后,将计数器的值返回。
下面是一个使用C++实现的示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int countTwos(int n) {
if (n <= 0) {
return 0;
}
string numStr = to_string(n);
int count = 0;
for (char c : numStr) {
if (c == '2') {
count++;
}
}
return count + countTwos(n - 1);
}
int main() {
int n;
while (cin >> n) {
cout << countTwos(n) << " ";
}
return 0;
}
```
你可以输入多个整数n,程序会依次输出每个n对应的结果。例如,输入22、222、2222、123、1234,程序会输出6、69、892、27、389。
阅读全文