思路:从个位加起,例如个位有N个1,那十位有N-1个1,百位有N-1-1个1.......最高位有1个1。然后考虑每位向高位的 进位,因为这里都是1所以,都是没10个进1位,
例程:#include<stdio.h>
main()
{
int N,x,r;
int y=0;
int num=0;
printf("N=");
scanf("%d",&N);
for(;N>0;N--)
{
r=N+y;
x=r%10;
if(x==1)
num++;
y=r/10;
}
printf("%d",num);
}