#include using namespace std; //函数:r进制转换成10进制 int rToTen(string n, int r) { //将r进制转为10进制,n是该r进制的字符串表示 int len = n.length(); int ans = 0; int i = 0; while (i < len) { ans *= r; if (n[i] >= '0' && n[i] <= '9') ans += n[i] - '0'; if (n[i] >= 'A' && n[i] <= 'Z') ans += n[i] - 'A' + 10; if (n[i] >= 'a' && n[i] <= 'z') ans += n[i] - 'a' + 10 + 26; i++; } return ans; } //函数:十进制转任意进制 string tenToR(int n, int r) { if (n == 0) return "0"; //十进制n转r进制 ,返回字符串s string str = ""; stack s; while (n) { s.push(n % r); n = n / r; } while (!s.empty()) { switch (s.top()) { case 10: str += 'A'; break; case 11: str += 'B'; break; case 12: str += 'C'; break; case 13: str += 'D'; break; case 14: str += 'E'; break; case 15: str += 'F'; break; default: str += s.top() + '0'; } s.pop(); } return str; } int main() { int n; cin >> n; //打印第一行 cout << "*"; for (int i = 0; i < n; ++i) { string c = tenToR(i, 16); cout << setw(4) << c; } cout << endl; // 开始按行打印 for (int i = 0; i < n; ++i) { cout << i; for (int j = 0; j <= i; ++j) { cout << setw(4) << tenToR(i * j, 16); } cout << endl; } return 0; }