阶乘很好求,递归就行了,但对于较大的数,阶乘的结果非常非常大,木有办法,只能用string来处理。
我们用string的乘法来做。经测试,这个程序能运行的最大n值差不多能到3000,和windows上自带的科学计算器差不多:)
string multiply(string num1, string num2) {
int len1 = num1.size(), len2 = n...
分类:
编程语言 时间:
2015-05-10 09:55:30
阅读次数:
132
这是做的第一道大数乘法题,之前一道腾讯校招试题也用的是大数,不过是大数加法,并且在做这道题的时候发现了一种很好的处理数位的方法。大数阶乘时间限制:3000ms|内存限制:65535KB难度:3描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并..
分类:
其他好文 时间:
2015-04-29 15:21:58
阅读次数:
145
大数阶乘。代码比较简单。#include#include#define MAXN 25000 // 如果你的阶乘N比较大,建议大一点int result[MAXN];int main(){int i,j,n;scanf("%d",&n);// memset函数的作用将某一段内存设置成指定的值//.....
分类:
编程语言 时间:
2015-04-23 21:41:11
阅读次数:
151
大数阶乘时间限制:3000ms | 内存限制:65535KB难度:3描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0#include #include #define NUM 20000int main(char argc, char**...
分类:
其他好文 时间:
2015-04-20 23:52:36
阅读次数:
143
大数阶乘时间限制:3000ms | 内存限制:65535KB难度:3描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0 4 #include 5 const int maxn = 20000; 6 int f[maxn]; 7 int m....
分类:
其他好文 时间:
2015-04-04 16:25:28
阅读次数:
114
高精度的运算在Java中是很容易实现的,就像 a + b Problem 一样,因为Java提供了相应的类库和API;但是在 C/C++ 当中就没有那么现成的类和API来让你调用了。本着“自己动手,丰衣足食”的Coder精神,还是自己上吧。让我们一起看看如何使用 C/C++ 来进行大数的阶乘吧。/*...
分类:
编程语言 时间:
2015-04-04 13:35:23
阅读次数:
281
#include#includeusing namespace std;int main(){ int n; while(cin>>n){ int i,j,k=0,a[10000]; a[0]=1; for(i=1;i=0;i--) ...
分类:
其他好文 时间:
2015-04-02 20:36:32
阅读次数:
126
这题不会,水平太次,把问题转换为程序的能力太弱了,不知道哪方面不足。直接copy的最优代码: #include#includeusing namespace std;//存储20000以内的阶乘int a[15470]; //用数组来存储结果,每个元素存一个五位数int main(){ ...
分类:
其他好文 时间:
2015-03-11 21:18:35
阅读次数:
183
大数阶乘时间限制:3000ms | 内存限制:65535KB难度:3描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0 2 #include 3 #define N 1000010 4 int a[N]; 5 int imitation(i...
分类:
其他好文 时间:
2015-02-27 14:54:10
阅读次数:
108
大数阶乘算法大数阶乘算法前几天朋友问我一个问题:“10000的阶乘怎么算?”当时我就有点懵,“10000”这个数字太大了,无论用什么数据类型保存结果都会溢出。这可怎么办呢?一时间束手无策。然后被一顿鄙视。后来经朋友的提醒,才恍然大悟,终于知道怎么实现了,原来是使用数组来模拟数字,这样无论结果数字有多...
分类:
编程语言 时间:
2015-02-02 10:45:04
阅读次数:
231