计算从1到N(N>=1)1的出现次数
例 input 12
output 5
这个题我用的codeblocks17.12解决的,先上代码
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n,cnt=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int temp=i;
while(i)
{
int t=i%10;
i/=10;
if(t==1)cnt++;
}
i=temp;
}
printf("%d",cnt);
}
大体思路是把一个每个数揪出来,分别余10和除10,while循环下去使cnt自增运算,但有个需要注意的地方是i的值需要提前设个数保存下,否则零进不了for循环,到最后死循环了,于是引进中间量temp保存i,使其重新进入for循环。
如上,略有所感,多请指教。