[蓝桥杯]阶乘计算

题目描述
输入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 · 访问量 163

猜你喜欢

转载自blog.csdn.net/qq_46340722/article/details/104397762
今日推荐