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
输入n,求n的n次方
#include<cstdio> int a[10010]; int main(){ int n,i,j,c,t; while(~scanf("%d", &n)){ a[0] = 1; t = 0; for(i = 1; i <= n; ++i){//每个数组单位存五位数字,即字节byte与位bit的关系,一个a[i]储存*****五位数字 c = 0; for(j = 0; j <= t; ++j){ a[j] = a[j]*i + c;//c是进位的值,t表示第几个单位,即第几个储存五位数字的单位 c = a[j] / 100000;//与100000运算,满五向前进位,100000只是个基数,换成1000000即一个单位储存六位数字 a[j] %= 100000; } if(c != 0){ t++; a[t] = c; } } printf("%d", a[t]);//最高位不一定满五位,不能用%05d输出,单独输出 for( i = t - 1; i >= 0; i--){ printf("%05d",a[i]); } printf("\n"); } return 0; }