#include
#include // C++中包含cstring头文件来使用strcpy
#include // C++中包含cstdlib头文件来使用atoi
// 函数用于将整数转换为指定基数的字符串表示
std::string intToBaseString(int num, int base) {
static char buffer[33]; // 静态数组用于存储转换后的字符串
int i = 0;
int isNegative = 0;
// 处理负数
if (num < 0) {
isNegative = 1;
num = -num;
}
// 转换为字符串
do {
int digit = num % base;
if (digit < 10) {
buffer[i++] = '0' + digit; // 0-9
} else {
buffer[i++] = 'A' + digit - 10; // A表示10,B表示11
}
num /= base;
} while (num > 0);
// 如果是负数,添加负号
if (isNegative) {
buffer[i++] = '-';
}
// 字符串结束符
buffer[i] = '\0';
// 反转字符串
for (int j = 0; j < i / 2; j++) {
char temp = buffer[j];
buffer[j] = buffer[i - j - 1];
buffer[i - j - 1] = temp;
}
return std::string(buffer); // 返回std::string类型
}
int main() {
int n, m, o;
std::string r, s, t; // 使用C++的string类型
// 生成12进制加法口诀表
for (n = 0; n < 12; n++) {
for (m = 0; m < 12; m++) {
o = n + m;
// 调用函数将整数转换为基数为12的字符串
r = intToBaseString(n, 12);
s = intToBaseString(m, 12);
t = intToBaseString(o, 12);
// 输出结果
std::cout << r << "+" << s << "=" << t << std::endl;
}
std::cout << std::endl; // 每完成一行后换行
}
return 0;
}