求助!25分!
查看原帖
求助!25分!
1044870
Lyrith_with_xQ楼主2023/8/10 19:02
#include<bits/stdc++.h>
using namespace std;


string c,a,b;

long long to_oct(int s,string n)
{
	long long sum=0,c=0;
	for(int i=n.size()-1;i>=0;i--)
	{
		if(n[i]>='0'&&n[i]<='9')sum+=(n[i]-'0')*pow(s,c);
		else sum+=(n[i]-'A'+10)*pow(s,c);
		c++;
	}
	return sum;
}

string to_base_random(int oct,int e)
{
	int num[100],i=0;
	string br="";
	while(oct)
	{
		num[i++]=oct%e;
		oct/=e;
	}
	for(int j=i-1;j>=0;j--)
	{
		if(num[j]<10)br+=num[j]+'0';
		else br+=(char)(num[j]-10+'A');
	}
	return br;
}

int main()
{
	cin>>a>>b>>c;
	for(int i=2;i<=16;i++)
	{
		long long oct1=to_oct(i,a),oct2=to_oct(i,b);
		long long sum=oct1*oct2;
	    string br=to_base_random(sum,i);
	    if(br==c)
	    {
	    	cout<<i;
	    	return 0;
		}
	}
	return 0;
}

不知道哪里错了,还请各位大神请教QWQ

2023/8/10 19:02
加载中...