KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)
从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
3 1 2 3 0 4 5 0 0 6
YES
4 1 2 3 4 5 6 7 8 9 0 11 12 13 0 0 16
NO
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[][] arr = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { arr[i][j] = in.nextInt(); } } int count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { if(arr[i][j]==0){ count++; } } } int num=isT(n); if(num == count){ System.out.print("YES"); }else{ System.out.print("NO"); } } private static int isT(int n) { if(n==1){ return 0; }else if(n==2){ return 1; }else{ return isT(n-1) + (n-1); } } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[][] nums = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { nums[i][j] = in.nextInt(); } } int flag = 0; //判断对角线下面是否为0 for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) { if (nums[i][j] != 0) { flag = 1; } } } if (flag == 0) { System.out.println("YES"); } else { System.out.println("NO"); } } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[][] Martix = new int[n][n]; //数字0的个数符合等差数列的通项公式,也即(n * (n - 1))/2 int countZero = 0; for(int i = 0;i < n;i++){ for(int j = 0;j < n;j++){ Martix[i][j] = scanner.nextInt(); if(i > j && Martix[i][j] == 0){ countZero++; } } } if(countZero == (n * (n - 1))/2){ System.out.println("YES"); }else{ System.out.println("NO"); } } }
import java.util.Scanner; /** * Created by kingwan on 2020/10/9. * 说明:取巧 */ public class Main { static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { boolean flag = true;//是否为上三角矩阵的标志 int n = scanner.nextInt(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int value = scanner.nextInt(); //只要j<i就是在左下角的数 if(j<i){ //大于0-->false if(value>0){ flag = false; } } } } System.out.println(flag?"YES":"NO"); } }