#include<stdio.h> //思路就是模拟乘法,乘数与被乘数的每一位相乘,然后大于十就进位 int main(int argc,const char** argv) { int arry[256]={0},tmp=0,id=1;//id是记录循环中数的位数 arry[0]=1; for(int i=1;i<=100;i++) { int cry=0;//定义进位 for(int j=0;j<id;j++) { arry[j]=arry[j]*i+cry;//从数的末尾至开头与乘数相乘 cry=arry[j]/10;//更新进位 arry[j]=arry[j]%10;//保存余数 } while(cry>0)//如果进位大于0,表示数的总长度需要增加 { arry[id++]=cry%10; cry/=10; } } for(int i=id-1;i>=0;i--) { printf("%d",arry[i]); } }