#include
// 函数用于将整数转换为指定基数的字符串表示
char* 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;
buffer[i++] = digit < 10? '0' + digit : 'A' + digit - 10;
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 buffer;
}
int main() {
using namespace std;
int n, m, o, p, q, r;
char r1[33], s1[33], t1[33], t2[33], t3[33], t4[33]; // 为字符串分配足够的空间
for (n = 0; n < 50; n++) {
for (m = 0; m < 50; m++) {
o = n + m;
p = n - m;
q = n * m;
if (m!= 0) {
r = n / m;
}
// 调用函数将整数转换为基数为 18 的字符串
strcpy(r1, intToBaseString(n, 18));
strcpy(s1, intToBaseString(m, 18));
strcpy(t1, intToBaseString(o, 18));
strcpy(t2, intToBaseString(p, 18));
strcpy(t3, intToBaseString(q, 18));
if (m!= 0) {
strcpy(t4, intToBaseString(r, 18));
}
// 输出结果
cout <<r1<<"+"<<s1<<"="<<t1<<endl;
cout <<r1<<"-"<<s1<<"="<< t2<<endl;
cout <<r1<<"×"<<s1<<"="<<t3<<endl;
if (m!= 0) {
cout <<r1<<"÷"<<s1<<"="<<t4<<endl;
}
}
}
return 0;
}