N为正整数,计算从1到N的所有整数中包含数字1的个数。比如,N=10,从1,2...10,包含有2个数字1。
输入
输入数据有多组测试数据,每一组占一行,每行为一个数字N,其中1≤N≤9999。以0作为结束。
输出
输出1到N所有整数中1的个数,每个测试占一行。
样例输入
1
2
3
4
5
6
7
8
9
10
11
0
样例输出
1
1
1
1
1
1
1
1
1
2
4
不要c++的 刚学的人能够看懂 能有注释
如下:
/*用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数
*/#include"stdio.h"intcount(int n)
{int i,j,c=0;for(i=1;i<=n;i++)
{ j=i; while(j!=0){if(i%10==1) /*判断位数中是否有1*/{c++;}
j=j/10; /*让数除以十让他原来的高位变为低位,即原来的十位变成个位*/}}return c;}
main(){int c,n;printf("input n:\n");scanf("%d",&n);c=count(n);
printf("%d\n",c);}
C语言基础语法: