用一个数组来表示最后的结果的个位 十位等位数
阶乘即意味着用数组中的每一个元素与数相乘 注意处理进位
参考代码:
#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语言代码)浏览:3891 |
C语言训练-排序问题<2> (C++代码)(sort函数)浏览:1572 |
C语言训练-阶乘和数* (C语言代码)浏览:981 |
简单的a+b (C语言代码)浏览:759 |
C语言训练-排序问题<1> (C++代码)浏览:589 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:746 |
校门外的树 (C语言代码)浏览:956 |
1157题解浏览:711 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:668 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2155 |