这题可以枚举出每个i,j 位置的数
>需要用到进制转换
int zh(int x){
long long sum=0,i=0;
while(x){
sum=sum+((x%n)*pow(10,i));
i++;
x/=n;
}
return sum;
}
上面是进制转换代码,n表示n进制
将进制转换封装起来,在枚举每个位置,先见第一排和第一列全赋值再进行枚举。
以下是整个代码
#include<bits/stdc++.h>
using namespace std;
int n,a[11][11];
int zh(int x){
long long sum=0,i=0;
while(x){
sum=sum+((x%n)*pow(10,i));
i++;
x/=n;
}
return sum;
}
int main(){
cin>>n;
for(int i=1;i<n;i++)a[1][i]=a[i][1]=i;
for(int i=2;i<n;i++){
for(int j=2;j<n;j++){
a[i][j]=zh(i*j);
}
}
for(int i=1;i<n;i++){
for(int j=1;j<n;j++)
cout<<a[i][j]<<" ";
puts("");
}
return 0;
}