用一个数组来表示最后的结果的个位 十位等位数
阶乘即意味着用数组中的每一个元素与数相乘 注意处理进位
参考代码:
#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语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:814 |
逆反的01串 (C++代码)(依旧推荐switch)浏览:936 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:578 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:586 |
C二级辅导-同因查找 (C语言代码)浏览:585 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:675 |
Cylinder (C语言描述+详细分析)浏览:3265 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1465 |
数组与指针的问题浏览:717 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2169 |