输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
语言:
c++
分析: 先求两数的和,再把和转为需要的进制数。十进制转换为其他进制数用取余操作,得到的余数按序存储在数组中。输出时按余数存入的逆序输出即得到答案。注意和为0的情况要单独处理。
下面有两个书写方法,个人觉得代码二先考虑和为0的情况不容易出错,且代码二更为简洁。
代码一
#includeusing namespace std; int main() { int A, B, D, cnt = 0; cin >> A >> B >> D; int sum = A + B; int result[1000] = { 0 }; for (int i = 0; i < 1000; i++) { if (sum != 0) { result[i] = sum % D; sum = (sum - result[i]) / D; } else { cnt = i - 1; break; } } while (cnt > 0) { cout << result[cnt]; cnt--; } cout << result[0]; return 0; }
代码二:
#includeusing namespace std; int main() { int A, B, D; cin >> A >> B >> D; int sum = A + B; int result[1000] = { 0 }; int i = 0; if (sum == 0) { cout << 0; return 0; } while (sum != 0) { result[i++] = sum % D; sum = sum / D; } for (int j = i - 1; j >= 0; j--) { cout << result[j]; } return 0; }



