题目描述
本题要求输出对称矩阵,我们可以轻松找出行i与列j的关系
当|i-j|=0时,矩阵元素为0+1=1,|i-j|=1时,矩阵元素为1+1=2,
依此类推,我们不难找出规律,矩阵的元素值为行与列的差的绝对值再加1。
由此很快便可输出所有矩阵元素,都不用创建数组。
注意:做题时为了方便未调整输入输出顺序,即每输入一个整数n,即输出一个n阶矩阵,
不影响测试结果。
C样例
#include<stdio.h>
#include<stdlib.h>
void matrix(n){
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d ",abs(i-j)+1);//输出矩阵[i][j]元素
}
printf("\n");
}
printf("\n");
}
void main(){
int n=0;
scanf("%d",&n);
while(n!=0){
matrix(n);
scanf("%d",&n);
}
}
JAVA样例
import java.util.*;
public class Main{
public static void matrix(int n){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(Math.abs(i-j)+1+" ");//输出矩阵[i][j]的值
}
System.out.println();
}
System.out.println();
}
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while(n!=0){
matrix(n);
n=sc.nextInt();
}
}
}
不用吃掉回车符也行啊
已修改,谢谢提醒👍