N!
Time Limit: 10000/5000 MS (Java/Others)????Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 74633????Accepted Submission(s): 21696
Problem Description
Given an integer N(0 ≤ N ≤ 10000),your task is to calculate N!
?
Input
One N in one line,process to the end of file.
?
Output
For each N,output N! in one line.
?
Sample Input
1 2 3
?
Sample Output
1 26
http://www.cnblogs.com/Su-Blog/archive/2012/08/27/2659172.html 转载
http://acm.hdu.edu.cn/showproblem.php?pid=1042 题目链接
// 又做一道大数
// POJ 2389 两个大数相乘 转载的方法不行
// 必须的拆开 比如888*88 = 8*8+8*8*10+8*8*100+8*8*10+8*8*10*10+8*8*10*100;
//用字符串储存*10就不一0 ;
<pre name="code" class="cpp">#include<iostream> #define MAX 100000 using namespace std; int main() { int n,a[MAX]; int i,j,k,count,temp; while(cin>>n) { a[0]=1; count=1; for(i=1;i<=n;i++) { k=0; for(j=0;j<count;j++) { temp=a[j]*i+k; //如果i过大就不行; a[j]=temp%10; k=temp/10; } while(k)//记录进位 { a[count++]=k%10; k/=10; } } //for(j=MAX-1;j>=0;j--) //if(a[j]) // break;//忽略前导0 for(i=count-1;i>=0;i--) cout<<a[i]; cout<<endl; } return 0; }// JAVA大数import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ BigInteger a = sc.nextBigInteger(); BigInteger b = sc.nextBigInteger(); System.out.println(a.multiply(b)); } } }// 大数用java 没办法谁叫别人JAVA比较高级 别人封装好了的 去记单词吧