当前位置: 代码迷 >> 综合 >> 问题 B: N的阶乘
  详细解决方案

问题 B: N的阶乘

热度:4   发布时间:2023-09-22 10:20:44.0

题目描述

输入一个正整数N,输出N的阶乘。

输入

正整数N(0<=N<=1000)

输出

输入可能包括多组数据,对于每一组输入数据,输出N的阶乘

样例输入

0
4
7

样例输出

1
24
5040

 

 

#include<stdio.h>
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
struct bign{int d[3000];int len;bign(){memset(d,0,sizeof(d));len=0;		}
};
bign multi(bign a,int b)
{bign c;//c.len--;int carry=0;for(int i=0;i<a.len;i++){int temp=a.d[i]*b+carry;c.d[c.len++]=temp%10;carry=temp/10;}while(carry!=0){c.d[c.len++]=carry%10;carry/=10;}return c;
}
int main()
{int n,i;while(scanf("%d",&n)!=EOF){bign c;c.d[0]=1;c.len=1;for(i=1;i<=n;i++){c=multi(c,i);}for(int i=c.len-1;i>=0;i--){printf("%d",c.d[i]);}printf("\n");	}return 0;
}

 

  相关解决方案