问题:
给定一个十进制正整数N,写下从一开始到N过程中所有1的个数?
例如:
N=2,写下1,2,出现了1个1
N=12,写下1,2,3,4,5,6,7,8,9,10,1,1,12,这里面1的个数是5
问题分析和解法:
最简单的一个方法就是从1开始进行遍历到N,将其中每个数中1的个数进行相加,这样我们就可以得到所有1的个数!!!
代码:
<span style="font-size:18px;">#include<iostream>
using namespace std;
int coutinter(int n)
{
int num = 0;
while (n != 0)
{
num += (n % 10 == 1) ? 1 : 0;//取余判断该位置是不是1,是1个数加1
n = n / 10; //取整
}
return num;
}
int f(int n);
int main()
{
int n = 10;
int sum = 0;
for (int i = 1; i <= 10; i++)
{
sum += coutinter(i);
}
cout << sum << endl;
system("pause");
return 0;
}</span>