用一个数组来表示最后的结果的个位 十位等位数
阶乘即意味着用数组中的每一个元素与数相乘 注意处理进位
#include<iostream> #include<algorithm> #include<cstring> using namespace std; int a[1000];//用来保存结果 int main() { int n; int rem=0,total;//rem表示进位 while(cin>>n)//求n的阶乘 { memset(a,0,sizeof(a));//初始化a数组为0 a[0]=1;//个位数为1 for(int i=2;i<=n;i++) { for(int j=0;j<1000;j++)//将数组中的每一位数都与i相乘 { total=a[j]*i+rem;//总的结果 rem=0;//将进位置为0 if(total>9) { a[j]=total%10;//保留个位数 rem=total/10;//算出进位 } else { a[j]=total;//保留原值 } } } for(int i=0;i<=999;i++) { if(a[i]!=0)//从个数起找出不为0的那个数 { cout<<a[i]<<endl; break; } } } return 0; }
0.0分
0 人评分
C语言训练-舍罕王的失算 (C语言代码)浏览:1054 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:589 |
C语言训练-斐波纳契数列 (C语言代码)浏览:3015 |
妹子杀手的故事 (C语言代码)浏览:737 |
A+B for Input-Output Practice (V) (C++代码)浏览:485 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:690 |
WU-输出九九乘法表 (C++代码)浏览:1852 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:573 |
1642题解浏览:784 |
排序算法(选择,插入,冒泡)浏览:876 |