1172:求10000以内n的阶乘

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

  

posted @ 2024-07-10 15:59  陈若麟  阅读(3)  评论(0编辑  收藏  举报