本地测试第一个点对,但是全WA,求助
查看原帖
本地测试第一个点对,但是全WA,求助
672776
XTianShuo楼主2022/9/28 10:16

以下是代码,感谢大佬

#include<bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e9+10;

int n,m;
int J1[9999],j2[9999];


signed main()
{
	scanf("%lld",&n);scanf("%lld",&m);
	J1[0]=1,j2[0]=1;
	int j=0;
	while(J1[j-1]<=1e9)
		J1[++j]=J1[j-1]*n;
	string s,c;
	cin>>s;
	int len=s.length();
	for(int i=0;i<len;i++)
		c[i]=s[len-i-1];
	int middle=0;
	for(int i=0;i<len;i++)
	{
		int x;
		if(c[i]=='A') x=10;
		if(c[i]=='B') x=11;
		if(c[i]=='C') x=12;
		if(c[i]=='D') x=13;
		if(c[i]=='E') x=14;
		if(c[i]=='F') x=15;
		if(c[i]>='0'&&c[i]<='9') x=c[i]-'0';
		middle+=x*J1[i]; 
	}
	j=0;
	while(j2[j-1]<=1e9)
		j2[++j]=j2[j-1]*m;
	bool flag=false;
	for(int i=30;i>=0;i--)
	{
		//int x=middle/j2[i];
		if(j2[i]==0) continue;
		int x=middle/j2[i];
		if(!x&&flag) cout<<0;
		if(x)
		{
			flag=true;
			if(x==10) cout<<"A";
			if(x==11) cout<<"B";
			if(x==12) cout<<"C";
			if(x==13) cout<<"D";
			if(x==14) cout<<"E";
			if(x==15) cout<<"F";
			if(x>=0&&x<=9) cout<<x;
			middle-=x*j2[i];
			
		}
	}

	return 0;
}
2022/9/28 10:16
加载中...