这题可以枚举出每个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; }