输入样例:5
输出样例:
25 16 9 4 1
16 9 4 1 25
9 4 1 25 16
4 1 25 16 9
1 25 16 9 1
方法一 找规律
#include <stdio.h>
#define MaxSize 100
int main(int argc, char *argv[])
{
int arr[MaxSize][MaxSize]={0};
int m=5,i,j;
scanf("%d",&m);//数组的实际大小
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(i+j>=m)
arr[i][j]=(2*m-i-j)*(2*m-i-j);
else
arr[i][j]=(m-i-j)*(m-i-j);
}
for(j=0;j<m;j++) //打印数组
{
printf("%-4d",arr[i][j]);
}
printf("\n");
}
return 0;
}
方法二 打印第一行 其他行元素右移
#include <stdio.h>
#define MaxSize 100
int main(int argc, char *argv[])
{
int a[MaxSize][MaxSize]={0};
int i=0,j=0,m=5;
scanf("%d",&m);
for(i=0;i<m;i++)
{
if(i==0)
{
for(j=0;j<m;j++)
a[i][j]=(m-i-j)*(m-i-j);
}
else
{
int temp=a[i-1][0];
for(j=0;j<m;j++)
{
a[i][j]=a[i-1][j+1];
}
a[i][j-1]=temp;
}
for(j=0;j<m;j++)
printf("%-3d",a[i][j]);
puts("");
}
return 0;
}