用一个数组来表示最后的结果的个位 十位等位数
阶乘即意味着用数组中的每一个元素与数相乘 注意处理进位
#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语言代码)浏览:588 |
C语言训练-角谷猜想 (C语言代码)浏览:1673 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:593 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:522 |
最长单词 (C语言代码)浏览:1355 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:2078 |
简单的a+b (C语言代码)浏览:523 |
时间转换 (C语言代码)浏览:623 |
C语言训练-排序问题<1> (C语言代码)浏览:355 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:568 |