作业帮 > 综合 > 作业

一道基础c++程序设计的题目 求代码

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 13:12:23
一道基础c++程序设计的题目 求代码
请计算a+b,但a和b是按不同的进制给出的.进制最小为2进制,最大为62进制,其中使用A-Z依次表示10到35,a-z表示36-61.请写出a+b的结果,结果按十进制输出.输入 第一行是一个整数N,表示有多少个测试样例,以后每行是一个样例,每行是4个部分,分别为a的值,a的进制,b的值,b的进制.其中值都是用一个字符串表示,进制都是一个整数.4个部分之间用一个空格隔开,保证输入的合法,a、b和a+b的值都在-2^31到2^31-1之间.输出 每行输出一个样例的结果.
Sample Input
2
1000 2 1F 16
-1 10 20 3
Sample Output
39
5
如果可以,请适当的给代码加下注释
#include
#include
using namespace std;
int fun(string a, int b){
char* tmp = &a[0];
int result = 0;
if(b==10){
if(*tmp == '-'){
tmp++;
while(*tmp!='\0'){
result = result*b + *tmp - 48;
tmp++;
}
return 0-result;
}else{
while(*tmp!='\0'){
result = result*b + *tmp - 48;
tmp++;
}
return result;
}
}
else{
while(*tmp != '\0'){
int temp = 0;
if(*tmp>='a'&&*tmp='A'&&*tmp>N;
int* result = new int[N];
int i;
for(i=0; i>a>>c>>b>>d;
result[i] = fun(a, c)+fun(b, d);
}
for(i=0; i
再问: 非常感谢指导 但是a和b允许是小数哦 那该怎么改?
再答: fun里面,先找小数点,找到就分成两部分,第一部分跟上面一样,小数部分的累加是加上数乘以n的-1,-2次方这样依次下去,然后两部分加起来