阶乘和求助
  • 板块学术版
  • 楼主lhyjiy
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/4 09:54
  • 上次更新2024/10/4 11:35:27
查看原帖
阶乘和求助
1125699
lhyjiy楼主2024/10/4 09:54

不知道哪里错了,并且好像错得还挺多...

#include <iostream>
#include <cstring>
#include <string>
#include <vector>
using namespace std;
vector<int> a;
int b[1000050];
int main(){
	int n;cin>>n;
	a.push_back(1);
	int cnt;
	for(int i=1;i<=n;i++){
		cnt=a.size()+3;
		for(int j=0;j<cnt;j++){
			a[j]*=i;
			if(a[j]>=100){
				a[j+2]+=a[j]/100;
				a[j+1]+=a[j]/10;
				a[j]%=10;
			}
			else if(a[j]>=10){
				a[j+1]+=a[j]/10;
				a[j]%=10;
			}
		}
		cnt++;
		for(int j=0;j<cnt;j++){
			b[j]+=a[j];
			b[j+1]+=b[j]/10;
			b[j]%=10;
		}
	}
	cnt++;
	while(b[cnt]==0) cnt--;
	for(int i=0;i<cnt;i++)
		cout<<b[i];
	return 0;
}
2024/10/4 09:54
加载中...