通过题目的描述我们需要将输出的每一个数都转化为n进制,因此我们可以用短除法来进行转化,而转化可以直接用string类型打印,而大于10的数字需要用大写字母来表示
上代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
string reverse1(int a, int n)//a表示需要转化的数,n表示需要转化的进制
{
string s = "";
while(a){
int tmp = a % n;
a /= n;
if(tmp >= 10){//如果有比10更大的进制就直接用大写字母表示
char c = 'A' + (tmp - 10);
s += c;
}
else s += (tmp + '0');
}
reverse(s.begin(), s.end());
return s;
}
signed main(void)
{
int n; cin >> n;
for(int i = 1; i < n; i++){//从第一行开始到第n - 1 行结束
for(int j = 1; j <= i; j++){
cout << reverse1(i, n) << '*' << reverse1(j, n) << '=' << reverse1(i * j, n) << ' ';
}
printf("\n");
}
return 0;
}