最后的测试答案错了,不知道问题出在哪里,求大佬帮忙看看
查看原帖
最后的测试答案错了,不知道问题出在哪里,求大佬帮忙看看
661194
import_man楼主2022/1/17 00:01
#include <bits/stdc++.h>
using namespace std;
int n,a[100]={1},len1=1,s[100]={0},len2=1,b;
void jc(int j){			//计算j的阶乘 
	memset(a,0,sizeof(a));len1=1;
	a[0]=1;
	for(int i=1;i<=j;i++){
		b=0;
		for(int k=0;k<len1;k++){
			a[k]=i*a[k]+b;
			b=floor(a[k]/10);
			a[k]%=10;
			if(k==len1-1&&b>0) len1++;
		}
	}
}
void qh(){				//阶乘求和
	b=0; 
	for(int i=0;i<len2;i++){
		s[i]+=a[i]+b;
		b=floor(s[i]/10);
		s[i]%=10;
		if(a[i+1]>0&&i==len2-1) len2++;
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		jc(i);
		qh();
	}
	for(int i=len2-1;i>=0;i--){
		cout<<s[i];
	}
	return 0;
}
2022/1/17 00:01
加载中...