Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同基数之间的转换 我用C++编码一个在不同的数目的基之间转换的问题,我尝试了几个测试用例,它在我的编译器上工作得很好,但是法官仍然显示错误答案(WA)。有谁能帮我识别代码将失败的测试用例,因为我找不到代码的错误_C++_Algorithm_Numbers_Base - Fatal编程技术网

不同基数之间的转换 我用C++编码一个在不同的数目的基之间转换的问题,我尝试了几个测试用例,它在我的编译器上工作得很好,但是法官仍然显示错误答案(WA)。有谁能帮我识别代码将失败的测试用例,因为我找不到代码的错误

不同基数之间的转换 我用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不使

问题陈述: 输入的第一行包含一个字符串,即原始基中的数字 输入的第二行包含两个数字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::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; 


}