求解P1591 0分 九wa一RE
  • 板块P1591 阶乘数码
  • 楼主hunj
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/28 18:55
  • 上次更新2024/8/28 20:04:03
查看原帖
求解P1591 0分 九wa一RE
728583
hunj楼主2024/8/28 18:55
#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[10001],b[10001],c[10001],t,n,f,lena,lenb,lenc;
    string jc="1",s="";
	cin>>t;
	for(int i=1;i<=t;++i){
		cin>>n>>f;
		for(int j=1;j<=n;++j){
			int k=j;
			while(k>0){
				int x=k%=10;
				char ch=(k%10)+'0';
				s=ch+s;
				k/=10;
			}
		}
		for(int j=0;j<=10000;++j){
			a[j]=0;
			b[j]=0;
			c[j]=0;
		}
		reverse(jc.begin(),jc.end());
		reverse(s.begin(),s.end());
		lena=jc.size()-1;
		lenb=s.size()-1;
		lenc=jc.size()+s.size()-1;
		for(int j=0;j<=lena;++j){
			a[j]=jc[j]-'0';
		}
		for(int j=0;j<=lenb;++j){
			b[j]=s[j]-'0';
		}
		for(int j=0;j<=lena;++j){
			for(int k=0;k<=lenb;++k){
				c[j+k]=c[j+k]+a[j]*b[k];
				c[j+k+1]=c[j+k+1]+c[j+k]/10;
				c[j+k]=c[j+k]%10;
			}
		}
		while(c[lenc]==0&&lenc>0){
			--lenc;
		}
		jc="";
		for(int j=lenc;j>=0;--j){
			char q=c[i]+'0';
			jc=jc+q;
		}
		int cnt=0;
		for(int z=0;z<=jc.size()-1;++z){
			if(jc[i]-'0'==f){
				++cnt;
			}
		}
		cout<<cnt<<endl;
	}
	return 0;
}

不知道错哪了,大佬们帮忙看一下,谢谢

错误链接

2024/8/28 18:55
加载中...