85分求调,(知道哪里不对,不知怎么办)
查看原帖
85分求调,(知道哪里不对,不知怎么办)
1673827
xbb130607楼主2025/7/22 12:34
#include <iostream>
using namespace std;

int f1(int n, int b){ // b进制转十进制(修正版)
    int r=0, p=1;
    while(n){
        r += (n%10)*p;
        p *= b;
        n /= 10;
    }
    return r;
}

int f2(int n, int b){ // 十进制转b进制(修正版)
    int r=0, p=1;
    while(n){
        r += (n%b)*p;
        p *= 10;
        n /= b;
    }
    return r;
}
bool Judge(int x,int y,int z,int b){
	x=f1(x,b);//将x转化成十进制 
	y=f1(y,b);//将y转化成十进制 
	return f2(x*y,b)==z;
}
int main() {
	int x,y,n;
	cin >> x >> y >> n;
	for(int b=2;b<=16;b++){
		if(Judge(x,y,n,b) == true) {
			cout << b;
			return 0;
		}
	}
	cout << 0;
	return 0;
}

我知道我的代码在处理大于10进制数时,肯定有问题,谁能告诉我怎么解决啊???

2025/7/22 12:34
加载中...