Submission
Status:
---------
Score: 0
User: Cmoss9
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2024-10-03 20:40:20
#include <stdio.h>
#include <math.h>
#include <string.h>
int main () {
printf("Base\t");
int base;
scanf("%d",&base);
int converttoten1 =0;
int converttoten2 =0;
char num1[100];
char num2[100];
printf("Num1\t");
scanf("%s",num1);
printf("Num2\t");
scanf("%s",num2);
int size1 = strlen(num1);
int size2 = strlen(num2);
//convert num 1 to base 10
for (int i = 0;i<size1;i++) {
if (base<=10) {
int temp1 = num1[i] - '0';
converttoten1 += temp1 * (int)pow(base,size1-i-1);
} if (base<=16 && base>10) {
if ('A' <= num1[i] && num1[i] <= 'F') {
int temp1 = num1[i] - '7';
converttoten1 += temp1 * (int)pow(base,size1-i-1);
}
if ('0' <= num1[i] && num1[i] <= '9') {
int temp1 = num1[i] - '0';
converttoten1 += temp1 * (int)pow(base,size1-i-1);
}
}
}
// convert num 2 to base 10
for (int i = 0;i<size2;i++) {
if (base<=10) {
int temp2 = num2[i] - '0';
converttoten2 += temp2 * (int)pow(base,size2-i-1);
} if (base<=16 && base>10) {
if ('A' <= num2[i] && num2[i] <= 'F') {
int temp2 = num2[i] - '7';
converttoten2 += temp2 * (int)pow(base,size2-i-1);
}
if ('0' <= num2[i] && num2[i] <= '9') {
int temp2 = num2[i] - '0';
converttoten2 += temp2 * (int)pow(base,size2-i-1);
}
}
}
int sum = converttoten1 + converttoten2;
int quo = sum;
int converttobase[10000];
int count = 0;
// sum (base 10) to base
if (base<=10) {
for (int i =0;quo>0;i++) {
int temp3 = quo%base;
quo = quo/base;
converttobase[i] = temp3 + 48;
count++;
}
}
else if (base>=10) {
for (int i =0;quo>0;i++) {
int temp4 = quo%base;
quo = quo/base;
if (temp4 <= 9) {
converttobase[i] = temp4 + 48;
count++;
} else if (temp4 >= 10 && temp4 <= 16) {
converttobase[i] = temp4 - 10 + 'A';
count++;
}
} // collect correct
}
printf("OUTPUT\t");
int size3 = count;
for (int i = 0;i<size3;i++) {
printf("%c",converttobase[size3-i-1]);
}
}