大数阶乘

来源:互联网 发布:bat 设置java环境变量 编辑:程序博客网 时间:2024/05/16 14:56

点击打开链接http://acm.nyist.net/JudgeOnline/problem.php?pid=28

大数乘法之模拟手工算法:

模拟手工算法很有意思,就是一步一步往下乘,当然要做个很大的数组,数组最好定义为整体变量,用手工的算法算出来..

编码如下:

#include <iostream>using namespace std;int a[100000];int main(){int m;cin >> m;a[1] = 1;int n=0, p =1;  // n 表示进位, p 表示位数 for(int i=2; i<=m; ++i){  // 小于 m 的每个数 int j;n = 0;    for( j=1; j<=p; ++j){a[j] = a[j]*i + n;   // +n : 表示加上前一位数的进位 n = a[j]/10;a[j] = a[j]%10;}while(n){         // 有进位时 a[j] = n%10;n = n/10;++j; }p = j-1;}for(int i = p; i>0; --i){   //倒序输出 cout << a[i];}cout << endl;return 0;}


原创粉丝点击