69,364
社区成员
发帖
与我相关
我的任务
分享
int a[N*5]={1},n=N,i,c,m=1;main(){for(;n;n--){for(c=i=0;i<m||c;)a[i++]=(c+=a[i]*n)%10,c/=10;m=i;}for(;m;)putch(a[--m]+48);}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int get_first_dig(int N)
{
double f1=(double)N * log10((double)N);
double f2= f1 - (int)floor(f1);
return (int)(pow(10.0,f2));
}
int main()
{
int i,first_dig;
char buff[256];
while(1)
{
memset(buff,0,sizeof(buff));
gets(buff);
if ( buff[0]==0)
break;
sscanf(buff,"%d",&i);
first_dig=get_first_dig(i);
printf("%d\n",first_dig);
}
return 0;
}