题目描述
给定一个整数N(0≤N≤10000),求取N的阶乘
输入描述:
多个测试数据,每个测试数据输入一个数N
输出描述:
每组用一行输出N的阶乘
大数运算,代码如下:
#include<stdio.h> int main() { int a[100000],b,n,m,i,j,count,next,mut; while(~scanf("%d",&n)) { mut=1,count=1,j=0,next=0,a[0]=1; for(i=2; i<=n; i++) { for(j=1; j<=count; j++) { mut=a[j-1]*i+next; a[j-1]=mut%10; next=mut/10; } while(next) { count++; a[count-1]=next%10; next/=10; } } for(i=count-1; i>=0; i--) printf("%d",a[i]); printf("\n"); } return 0; }
原理我就不写了,简述一下就是用数组来模拟超出界限的大数。原理了解一下就可以,代码网上都是开放的,随用随搜。