标签:nbsp eof car print soft sof size integer 题目
输入一个正整数N,输出N的阶乘。
正整数N(0<=N<=1000)
输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
4 5 15
24 120 1307674368000
#include<string.h> #include<stdio.h> using namespace std; struct biginteger{ int digit[1000]; int size; void init(){ //初始化 for(int i=0;i<1000;i++) digit[i]=0; size=0; } void set(int x){ //把一个x设置为高精度整数 init(); do{ digit[size++]=x%10000; x/=10000; }while(x!=0); } void output(){ //4位4位地输出 for(int i=size-1;i>=0;i--){ if(i!=size-1) printf("%04d",digit[i]); else printf("%d",digit[i]); } printf("\n"); } biginteger operator * (int x) const { biginteger ret; ret.init(); int carry=0; for(int i=0;i<size;i++){ int temp=x*digit[i]+carry; carry=temp/10000; temp%=10000; ret.digit[ret.size++]=temp; } if(carry!=0){ ret.digit[ret.size++]=carry; } return ret; } }a; int main(){ int n; while(scanf("%d",&n)!=EOF){ a.init(); a.set(1); for(int i=1;i<=n;i++){ a=a*i; } a.output(); } return 0; }
标签:nbsp eof car print soft sof size integer 题目
原文地址:https://www.cnblogs.com/bernieloveslife/p/9736448.html