社区讨论

0分求助

P1591阶乘数码参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo7yty1b
此快照首次捕获于
2023/10/27 09:59
2 年前
此快照最后确认于
2023/10/27 09:59
2 年前
查看原帖
我问问我哪错了。
看着没问题啊。
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;

signed main(){
	int n;
	cin>>n;
	for(int sd=1;sd<=n;sd++){
		int ans[10000]={0},ls[10000]={0};
		int s,a,l=1,d=0;
		cin>>s>>a;
		ans[1]=1;
		for(int i=2;i<=s;i++){
			int p=false;
			for(int j=1;j<=l;j++){
				ls[j]+=ans[j]*i;
				if(ls[j]>=10){
					if(j==l)p=true;
					ls[j+1]+=ls[j]/10;
					ls[j]%=10;
				}
			}
			if(p==true)l++;
			for(int j=1;j<=l;j++){
				ans[j]=ls[j];
				ls[j]=0;
			}
			for(int j=l;j>=1;j--)cout<<ans[j];
			cout<<endl;
		}
		for(int i=1;i<=l;i++)if(ans[i]==a)d++;
		cout<<d<<endl;
	} 
}

回复

5 条回复,欢迎继续交流。

正在加载回复...