C++ 代码
#include<iostream>
using namespace std;
void check(int a,int b,int n){
int num=a*b;
int high=num/n;
int low=num-high*n;//看例题很好理解这个p进制的转换
if(high>9||low>9){
if(high==0);
else if(high>9)cout<<char(high+'A'-10); else if(high<10&&high!=0)cout<<high;
if(low>9)cout<<char(low+'A'-10); else if(low<10)cout<<(low);
return ;
}
else cout<< high*10+low;
return ;
}
int main(){
int n;
cin>>n;
int k=n-1;
for(int i=0;i<k;i++){
for(int j=0;j<k;j++){
if(j>i);
else if(i>=9&&j<9){
cout<<char(i+1+'A'-10)<<"*"<<(j+1)<<"=";
check(i+1,j+1,n);
}
else if(i<9&&j>=9){
cout<<char(i+1)<<"*"<<char(j+1+'A'-10)<<"=";
check(i+1,j+1,n);
}
else if(i>=9&&j>=9){
cout<<char(i+1+'A'-10)<<"*"<<char(j+1+'A'-10)<<"=";
check(i+1,j+1,n);
}
else {
cout<<i+1<<"*"<<j+1<<"=";
check(i+1,j+1,n);
}
cout<<" ";
}
cout<<endl;
}
return 0;
}
想法是分类,先写一个长例题样子的9x9,
再在基础之上考虑 axb=c 时的 a,b,c 分别大于10 小于10 的不同判定情况
再根据 char(intNum+‘A’-10) 来转换为ascii字符