判断1~n有多少个1
例如:1~12中
1 2 3 4 5 6 7 8 9 10 11 12
有1,10,11,12中含有1,则共有5个1;
算法如下:
#include<stdio.h>
#include<math.h>
int Fun_1(int n)//判断每一位上的数是否等于1
{
int l,len=0;
while(n)
{
l=n%10;
n/=10;
if(l==1) len++;
}
return len;
}
void Fun(int n)//1~n有多少个1
{
int num=0;
for(int i=1;i<=n;i++)
{
num+=Fun_1(i);
}
printf("%d
",num);
}
int main()
{
Fun(12);
return 0;
}
程序输出为