解题思路:
参考代码:
#include<stdio.h> #include<stdlib.h> const int maxn=1e5+5; int a[maxn]; int main(){ int n,c,d=0; scanf("%d",&n); //初始化结束 a[0]=1; //开始计算阶乘 for(int i=2;i<=n;i++){ c=0;//每次相乘时,进位存储器需要更新为0 for(int j=0;j<maxn;j++){ d=a[j]*i+c;//a[j]是当前被乘i的哪一位上的数字,"+c"是进位 a[j]=d%10;//模10,是计算个位上的数字,赋值给f[j] c=d/10; //除10,是取10位上的数字 } } for(int i=maxn-1;i>=0;i--){ if(a[i]!=0){ for(int k=i;k>=0;k--){ printf("%d",a[k]); } break; } } printf("\n"); return 0; }
0.0分
0 人评分
WU-输入输出格式练习 (C++代码)浏览:1133 |
简单的a+b (C语言代码)浏览:560 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:573 |
文科生的悲哀 (C语言代码)浏览:1538 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1483 |
川哥的吩咐 (C语言代码)浏览:663 |
前10名 (C语言代码)浏览:773 |
矩阵的对角线之和 (C语言代码)浏览:1401 |
排序算法(选择,插入,冒泡)浏览:876 |