#include "stdio.h"
#include "stdlib.h"
int grd[1000]={1};
int lagsum(int v[],int e,int *s)
{
int i,j,k=0;
for(i=0;i<*s-1;i++){
if(((v[i]=(v[i]*e+k))>>16)>0){
k=v[i]>>16;
v[i]=v[i]&0x0000ffff;
}
else k=0;
}
if(((v[i]=(v[i]*e+k))>>16)>0){
k=v[i]>>16;
v[i]=v[i]&0x0000ffff;
v[i+1]=k;
*s+=1;
}
}
int main()
{
int i,j=1,k;
scanf("%d",&k);
for(i=1;i<=k;i++)
lagsum(grd,i,&j);
for(;j>0;j--)
printf("%x",grd[j-1]);
system("pause");
return 0;
}
100000!大概要二分钟吧,,直接处理二进制进位.虽然可以得到较快的速度.但大数的数制转换同样的麻烦..呵呵.