对于 新手的我来说 写起来 还是有一点吃力 好在写出来了!
1 #include<stdio.h> 2 int main() 3 { 4 int m; 5 scanf( "%d" , &m ); 6 int a[50000] = {0,1}; 7 //static int a[50000]={0,1};//第一位不用 8 int i, j, carry, tmp, lenth = 1;//carry表示进位 9 10 for( i=2 ; i <= m; i++) 11 { 12 carry = 0; 13 for( j = 1; j <= lenth; j++) 14 { 15 //乘法转化为加法和进位 16 tmp = a[j] * i + carry; 17 a[j] = tmp % 10; 18 carry = tmp / 10; 19 20 //如果有进位,则向前扩展一位 21 if( j == lenth && carry != 0) 22 lenth ++; 23 } 24 } 25 for( int k = lenth; k >= 1; k--) 26 printf( "%d" , a[k] ); 27 return 0; 28 }
戳这里
就是这样子 以后再来看
时间: 2024-12-20 23:51:56