1095:数1的个数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 35685 通过数: 25347
【题目描述】
给定一个十进制正整数n(1≤n≤10000)n(1≤n≤10000),写下从11到nn的所有整数,然后数一下其中出现的数字“1
”的个数。
例如当n=2n=2时,写下1,21,2。这样只出现了11个“1
”;当n=12n=12时,写下1,2,3,4,5,6,7,8,9,10,11,121,2,3,4,5,6,7,8,9,10,11,12。这样出现了55个“1
”。
【输入】
正整数nn。1≤n≤100001≤n≤10000。
【输出】
一个正整数,即“1
”的个数。
【输入样例】
12
【输出样例】
5
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i,n,a,s=1,j;
scanf("%d",&n);
for(i=2;i<=n;++i)
{
a=i;
do{
j=a%10;
a=a/10;
if(j==1)s++;
}while(a!=0);
}
printf("%d",s);
return 0;
}//这题运用了do-while和for循环