[藍橋杯]階乘計算

題目描述
輸入n,輸出n的階乘。

輸入
輸入包含一個正整數n,n<=1000

輸出
輸出n!的準確值。

樣例輸入
10

樣例輸出
3628800

 
 
思路
高精度乘法(大數乘法)

 
 
AC代碼

#include<bits/stdc++.h>
using namespace std;

int n;
vector<int> v;

vector<int> mul(int x){
	vector<int> res;
	int t=0;
	for(int i=0;i<v.size();i++){
		t=v[i]*x+t;
		res.push_back(t%10);
		t=t/10;
	}
	while(t!=0){
		res.push_back(t%10);
		t=t/10;
	}
	return res;
}
int main(){
	cin>>n;
	v.push_back(1);
	for(int i=2;i<=n;i++){
		v=mul(i);
	}
		
	for(int i=v.size()-1;i>=0;i--)
		cout<<v[i];
	
	
	return 0;
}
發佈了10 篇原創文章 · 獲贊 8 · 訪問量 1850
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章