求助(测试出来什么状态都有,就是没有AC)~~
查看原帖
求助(测试出来什么状态都有,就是没有AC)~~
777597
David007楼主2023/4/1 13:12

样例过了,提交五彩斑斓,就是没有绿~~ 请大佬们查看一下!!

#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<vector>
#include<list>
using namespace std;
//高精加法 
string gao_jia(string a,string b){
	string ans ="";
	int na[505],nb[505];
	memset(na,0,sizeof(na));
	memset(nb,0,sizeof(nb));
	int len1=a.size();
	int len2=b.size();
	int len=max(len1,len2);
	for(int i=0;i<len1;i++){
		na[len1-i-1]=a[i]-'0';
	}
	for(int i=0;i<len2;i++){
		nb[len2-i-1]=b[i]-'0';
	}
	for(int i=0;i<len;i++){
		na[i]+=nb[i];
		na[i+1]+=na[i]/10;
		na[i]%=10;
	}
	int i=len;
	while(i>0&&na[i]==0) i--;
	for(i;i>=0;i--){
		ans+=char(na[i]+'0');
	}
	return ans;
}

bool cmp(string a,string b){
	int len1=a.size(); 
	int len2=b.size();
	if(len1!=len2){
		return len1>len2;
	} 
	else{
		return a>b;
	}
}
//高精减法 
string gao_jian(string a,string b){
	string ans="";
	if(!cmp(a,b)){
		ans+='-';
		swap(a,b);
	}
	int na[505],nb[505];
	memset(na,0,sizeof(na));
	memset(nb,0,sizeof(nb));
	int len1=a.size();
	int len2=b.size();
	int len=max(len1,len2);
	for(int i=0;i<len1;i++){
		na[len1-i-1]=a[i]-'0';
	}
	for(int i=0;i<len2;i++){
		nb[len2-i-1]=b[i]-'0';
	}
	for(int i=0;i<len;i++){
		na[i]-=nb[i];
		if(na[i]<0){
			na[i+1]-=1;
			na[i]+=10;
		}
	}
	int i=len;
	while(i>0&&na[i]==0) i--;
	for(i;i>=0;i--){
		ans+=char(na[i]+'0');
	}
	return ans;
}

//高精乘单精 
string gao_cheng_dan(string a,int b)
{
    int na[505],len;
    string ans="";
    len = a.size();
    for(int i=0;i<len;i++)
    {
        na[len-i-1] = a[i]-'0';
    }
    for(int i=0;i<len;i++)
    {
        na[i] *= b;
    }
    //统一处理进位
    for(int i=0;i<len;i++)
    {
        na[i+1] += na[i]/10;
        na[i] %= 10;
    }
    while(na[len])
    {
        na[len+1] = na[len]/10;
        na[len] %= 10;
        len++;
    }        
    for(int i=len-1;i>=0;i--)
    {
        ans += char(na[i]+'0');
    }
    return ans;
}

//高精乘高精 
string gao_cheng_gao(string a,string b){
	string ans ="";
	int na[2000],nb[2000],c[4000];
	memset(na,0,sizeof(na));
	memset(nb,0,sizeof(nb));
	memset(c,0,sizeof(c));
	int len1=a.size();
	int len2=b.size();
	int len=len1+len2;
	for(int i=0;i<len1;i++){
		na[len1-i-1]=a[i]-'0';
	}
	for(int i=0;i<len2;i++){
		nb[len2-i-1]=b[i]-'0';
	}
	for(int i=0;i<len1;i++){
		for(int j=0;j<len2;j++){
			c[i+j]+=na[i]*nb[j];
		}
	}
	for(int i=0;i<len;i++){
		c[i+1]+=c[i]/10;
		c[i]%=10;
	}
	bool p=1;
	for(int i=len-1;i>=0;i--){
		if(p&&c[i]==0&&i!=0){
			continue;
		}
		else{
			p=0;
		}
		ans+=char(c[i]+'0');
	}
	return ans;	
}

//高精除低精 
string gao_chu_dan(string a,int b)
{
    long long na[5005],len,n[10010];
    string ans="";
    len = a.size();
    for(int i=0;i<len;i++)
    {
        na[i] = a[i]-'0';
    }
    for(int i=0;i<len;i++)
    {
        n[len-i-1]= na[i]/b;
        long long yu=na[i]%b*10;
        na[i+1]+=yu;
    }
    int i=len;
    while(i>0&&n[i]==0) i--;
	for(i;i>=0;i--){
		ans+=char(n[i]+'0');
	}
    return ans;
}
int p;
char o;
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>p>>o;
		string jc="1";
		int cnt=0;
		for(int j=1;j<=p;j++){
			jc=gao_cheng_dan(jc,j);
		}
//		cout<<endl<<jc<<endl;
		for(int j=0;j<jc.length();j++){
			if(jc[j]==o){
				cnt++;
			}
		}
		cout<<cnt<<endl;
	}
} 
2023/4/1 13:12
加载中...