1172:求10000以内n的阶乘

1172:求10000以内n的阶乘


时间限制: 1000 ms         内存限制: 65536 KB
提交数:51446    通过数: 16810

【题目描述】

1000010000以内n的阶乘。

【输入】

只有一行输入,整数n0n100000)。

【输出】

一行,即n!的值。

【输入样例】

4

【输出样例】

24
#include<iostream>
#include<vector>
using namespace std;
int main(){
	vector<int> a,b;
    int n,sum=0;
    cin>>n;
    a.push_back(1);
    for(int j=2;j<=n;j++){
	 	sum=0;
		for(int i=0;i<a.size()||sum;i++){
	        if(i>=a.size()){
	            a.push_back(0);
	        }
	        sum+=a[i]*j;
	        a[i]=sum%10;
	        sum/=10;               
	    }      
	}
    for(int i=a.size()-1;i>=0;i--){
        cout<<a[i];
    }
	return 0;
}

  

posted @ 2024-07-10 15:33  王ys  阅读(60)  评论(0编辑  收藏  举报