用一个数组来表示最后的结果的个位 十位等位数
阶乘即意味着用数组中的每一个元素与数相乘 注意处理进位
参考代码:
#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语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:611 |
九宫重排 (C++代码)浏览:1325 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:529 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:779 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:549 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:609 |
WU-格式化数据输出 (C语言代码)浏览:1740 |
WU-小九九 (C++代码)浏览:1680 |
剪刀石头布 (C语言代码)浏览:748 |