hdu1042 N!】的更多相关文章

HDU1042(N!)题解 以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 计算N的阶乘并输出. [题目分析] 题给范围上限是10000,那么毫无疑问是大数题.之前我整理过各种大数的代码并且改了改然后所谓封装了一下,于是这道题就直接用了个类似的代码修改了一下,然后...交上去就对了(喂..).但是作为题解,怎么着也得把做法解释清楚吧.. 以下为c语言代码(虽然是cpp提交的,也带了一堆cpp头文件),也附带了代码解释.代码很好懂,看看解释应该看得明白.还有...如果你是写…
/* N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 67077 Accepted Submission(s): 19228 Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in one…
首先明白这是大数问题,大数问题大多采用数组来实现.如何进位.求余等.比如1047 (Integer Inquiry): 对于1042问题 计算10000以内数的阶乘,因为10000的阶乘达到35660位.所以普通的做法是无法实现的.所以我们只能定义一个40000个成员的数组就可以啦. int a[40000]; 编程思想:(把计算结果的每一位上的数字保存到一个数组成员中,)例如将1234保存至数组中,结果为 a[0]=4 a[1]=3 a[2]=2 a[3]=1, 一个int 型数据存放一个小于…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1042 题意: Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! 是不是很简单呢? 一般方法: #include<iostream> #include<cstring> using namespace std; ; int a[MAXN]; int main() { int N, k, temp; while(sc…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 由于数字特别大, 所以用数组来模拟. 经测试, 数组大小开50000 可过. 附AC代码, 欢迎大神指点~ #include <cstdio>#include <cstring> const int maxn = 50000 + 100;int a[maxn];void solve(int n){ memset(a, 0, sizeof(a)); a[0] = 1; int p…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 在网上找了个大数模板方便以后用得到. #include<iostream> #include<string.h> #include<iomanip> #include <stdio.h> #include<algorithm> using namespace std; #define MAXN 9999 //每组的上限值 #define MAX…
#include"stdio.h" #include"stdlib.h" #include"string.h" #define N 10000 int a[N]; int main() { int i,j,n,len; while(scanf("%d",&n)!=-1) { memset(a,0,sizeof(a)); //初始化数组 a[0]=1; //注意:0!=1 len=1; //刚开始数组长度为一 for(i…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 题目描述: 代码实现: import java.util.Scanner; import java.math.BigInteger; public class Main{ public static void main(String[] args) { Scanner cin=new Scanner(System.in); while(cin.hasNext())//等价于!=EOF { in…
N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 88267    Accepted Submission(s): 26008 Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in o…
本题大意:给定一个10000以内的整数n,让你求出n!并输出. 本题思路:先初始化一个存放答案的数组ans,初始ans[0] = 1,并初始化其剩下的元素为0,接着就从2开始依次与ans数组内的每一个数相乘,具体乘法过程见代码,需要注意的就是求divisor时自身此时的值也是需要加上的,还有就是注意当存在余数并且当前位数已经不够用的情况下才将总位数加一否则不加,答案里会出现很多前导零. #include <cstdio> #include <iostream> #include &…