大数阶乘
来源:互联网 发布:网络配线架有什么用 编辑:程序博客网 时间:2024/06/13 05:01
#include <iostream>
#include<stdlib.h>
using namespace std;
int car(int a[], int pos) {
int i, carry = 0;
for (i = 0; i <= pos; i++) {
a[i] += carry;
if (a[i] <= 9) carry = 0;
else if (a[i] > 9 && i < pos) {
carry = a[i] / 10;
a[i] = a[i] % 10;
}
else if (a[i] > 9 && i >= pos) {
while (a[i] > 9) {
carry = a[i] / 10;
a[i] = a[i] % 10;
i++;
a[i] = carry;
}
return i;
}
}
return pos;
}
int main() {
int m,i,j,*a,intl,pos,fpo;
double l=0;
cin >> m;
for (i = 1; i <= m; i++) //计算结果的位数
l += log10(i);
intl = (int)l + 1;
a = (int*)malloc((intl+1) * sizeof(int));
for (i = 0; i <= l + 2; i++)
a[i] = 0; //初始化数组
a[0] = 1;
for (i = 2; i <= m; i++) { //累乘的循环
for (j = intl; j >=0; j--) { //查找最高位
if (a[j] != 0) {
pos = j;
break;
}
}
for (j = 0; j <= pos; j++)
a[j] *= i;
fpo=car(a, pos); //进位并记录新的最高位
}
for (i = fpo; i >= 0; i--) //输出
cout << a[i];
return 0;
}
#include<stdlib.h>
using namespace std;
int car(int a[], int pos) {
int i, carry = 0;
for (i = 0; i <= pos; i++) {
a[i] += carry;
if (a[i] <= 9) carry = 0;
else if (a[i] > 9 && i < pos) {
carry = a[i] / 10;
a[i] = a[i] % 10;
}
else if (a[i] > 9 && i >= pos) {
while (a[i] > 9) {
carry = a[i] / 10;
a[i] = a[i] % 10;
i++;
a[i] = carry;
}
return i;
}
}
return pos;
}
int main() {
int m,i,j,*a,intl,pos,fpo;
double l=0;
cin >> m;
for (i = 1; i <= m; i++) //计算结果的位数
l += log10(i);
intl = (int)l + 1;
a = (int*)malloc((intl+1) * sizeof(int));
for (i = 0; i <= l + 2; i++)
a[i] = 0; //初始化数组
a[0] = 1;
for (i = 2; i <= m; i++) { //累乘的循环
for (j = intl; j >=0; j--) { //查找最高位
if (a[j] != 0) {
pos = j;
break;
}
}
for (j = 0; j <= pos; j++)
a[j] *= i;
fpo=car(a, pos); //进位并记录新的最高位
}
for (i = fpo; i >= 0; i--) //输出
cout << a[i];
return 0;
}
阅读全文
0 0
- 大数阶乘
- 大数阶乘。
- 大数阶乘
- ~阶乘~大数
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘!!
- 大数阶乘
- 大数阶乘
- 大数阶乘
- unity快捷键大全
- ORACLE安装
- DataReader转换为IList<T>
- Altium Designer 去除死铜的方法(规则检查提示:isolated copper)
- 判断链表中是否有环 ----- 有关单链表中环的问题
- 大数阶乘
- C++ 读入空格
- js通过使用Set对象,将多个数组合并且去重排序(ECMAscript 6)
- JAVAWEB开发之Hibernate详解(四)——持久化类的继承映射关系
- LUOGU1445——没占到1444的愤怒 数学
- Java设计模式-单例模式
- Python 设计模式 -- 单例模式
- 初识servlet
- 测试ipv6网络连通性的UDP协议测试代码