描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0输出输出m的阶乘,并在输出结束之后输入一个换行符
分析:很明阶乘的数比较大,用int会溢出,所以采用int数组的方法,用数组的元素来保存每一位,根据乘法的相乘规则,用数组元素的每一位去乘迭代
#include
#include
#include
using namespac...
分类:
其他好文 时间:
2014-10-16 00:46:41
阅读次数:
453
N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 53785 Accepted Submission(s): 15217
Problem Description
Given an integer N(0 ≤ N ≤ 1...
分类:
其他好文 时间:
2014-10-11 22:04:37
阅读次数:
225
给定一个数,如果它是N位的,那么从1到N乘以这个数,得到的(指得到的N个数都满足条件)都是这个数的回文数。判断给定的数是否满足条件:大数乘法部分不是难点,本题的难点是怎么判断进行大数乘法之后得到的新数从某个digit开始读就是原数。假设存储原数的字符数组为ori_str,储存进行大数阶乘之后的数的字...
分类:
其他好文 时间:
2014-10-09 17:41:07
阅读次数:
189
大数的相加相乘和阶乘操作都可能会导致结果的溢出,可以把它们转换成字符串,再进行运算,这里需要注意的是,习惯上的加法乘法运算都是从低位开始运算的,先计算个位,个位向高位进位,依次进行直到最高位。字符串表示一个数字的时候如”3476”,它的低位数字在最大下标处,为了与习惯上的操作保持一致,可以先把字符串反转,求出结果之后再把结果反转回来即可。接下来的加法操作就使用了反转的方法,乘法操作也可以使用类似的...
分类:
其他好文 时间:
2014-09-11 02:20:01
阅读次数:
243
N!Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 54172 Accepted Submission(s): 15365
Problem DescriptionGiven an integer N(0 ≤ N ≤ 10000...
分类:
其他好文 时间:
2014-08-20 19:39:32
阅读次数:
229
这道题就是大数阶乘的另类运用。
直接上代码:
#include
#include
#include
using namespace std;
int dp[1005][1005];
int main()
{
int n, m, a[3], i, j; //数组开到3就是前三位
while(scanf("%d%d", &n, &m), n||m){
memset(...
分类:
其他好文 时间:
2014-08-07 13:21:00
阅读次数:
194
A - N!
Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
Description
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!
...
分类:
其他好文 时间:
2014-07-29 18:06:02
阅读次数:
280
一个头疼的程序;计算100以内的阶乘。这是我的程序,可计算10000以内的阶乘: 1 #include 2 3 void fac(int val){ 4 int i,n,c; 5 int k; 6 int t[1000]={1}; 7 k=0; 8 ...
分类:
其他好文 时间:
2014-07-22 08:04:35
阅读次数:
249
感谢微信平台----一天一道算法题----每天多一点进步大数的概念 感觉是我接触acm 1 2
个月之后才有的....64位的Long long 和 __int64 也大概都是那时候才有的..大数 相加 相乘 相除 求余 相减不知道
有没有。。。都是应该要掌握的..可能 我也会陆续把上面的全慢慢贴上...
分类:
其他好文 时间:
2014-06-12 20:07:33
阅读次数:
282