不同基数之间的转换 我用C++编码一个在不同的数目的基之间转换的问题,我尝试了几个测试用例,它在我的编译器上工作得很好,但是法官仍然显示错误答案(WA)。有谁能帮我识别代码将失败的测试用例,因为我找不到代码的错误
问题陈述: 输入的第一行包含一个字符串,即原始基中的数字 输入的第二行包含两个数字A和B,即原始基数和最终基数 输出将是一个字符串,表示新基中的数字,其中a、B、C、D、E、F、…、Z表示10、11、12、13、14、15、…、35 我的代码:不同基数之间的转换 我用C++编码一个在不同的数目的基之间转换的问题,我尝试了几个测试用例,它在我的编译器上工作得很好,但是法官仍然显示错误答案(WA)。有谁能帮我识别代码将失败的测试用例,因为我找不到代码的错误,c++,algorithm,numbers,base,C++,Algorithm,Numbers,Base,问题陈述: 输入的第一行包含一个字符串,即原始基中的数字 输入的第二行包含两个数字A和B,即原始基数和最终基数 输出将是一个字符串,表示新基中的数字,其中a、B、C、D、E、F、…、Z表示10、11、12、13、14、15、…、35 我的代码: #包括 #包括 #包括 使用名称空间std; int main(){ 字符串x; INTA,b; cin>>x>>a>>b; 字符串alpha=“abcdefghijklmnopqrstuvxyz”; 无符号长和=0; 对于(int i=0;IDON不使
#包括
#包括
#包括
使用名称空间std;
int main(){
字符串x;
INTA,b;
cin>>x>>a>>b;
字符串alpha=“abcdefghijklmnopqrstuvxyz”;
无符号长和=0;
对于(int i=0;IDON不使用<代码> STD::POW。它使用浮点数学,用代码代替PoP<代码>用自己的函数做同样的事,但用整数数学。”谢谢,这真的对我有用,C++中没有整数的幂函数的内置函数吗?不幸的是,你不需要幂运算。在每次迭代中重复求和。参见示例。
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
string x;
int a,b;
cin>>x>>a>>b;
string alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned long long sum = 0;
for (int i=0;i<x.length();i++){
if (isalpha(x[i])){
int itr = find(alpha.begin(),alpha.end(), x[i]) - alpha.begin();
sum += (itr+10) * pow(a,x.length()-1-i);
}
else sum += (x[i] - '0') * pow(a, x.length()-1-i);
//cout << sum << '\n';
}
// base 10 to base n convertion
string res = "";
while (sum>0){
int temp;
if (temp = sum%b, temp >=10) res.push_back(alpha[temp-10]);
else res.push_back(temp + '0');
sum/=b;
}
reverse(res.begin(), res.end());
cout << res;
}