#include<stdio.h>
#include<math.h>
int main()
{
int n,a;
double sum;
scanf("%d",&n);
for(int j=1;j<=n;j++)
{
sum=0;
scanf("%d",&a);
for(int i=1;i<=a;i++)
sum+=log10(i);
printf("%d\n",(int)sum+1);
}
return 0;
}
百度学到,求一个数的位数用log10()+1;
#include<stdio.h>
int main()
{
int sum;
char s;
while(s=getchar())
{
if(s>='0'&&s<='9')
{
sum+=s-'0';
}
if(s=='\n')
{
if(sum==0)
break;
else
{
if(sum%9)
sum=sum%9;
else
sum=9;
printf("%d\n",sum);
sum=0;
}
}
}
return 0;
}
两数相加需要为个位数,每次相加若不为个位数,模一个9即可得到。