jmu-Java-02基本语法-04-动态数组

    科技2022-07-12  116

    根据输入的n,打印n行乘法口诀表。 需要使用二维字符串数组存储乘法口诀表的每一项,比如存放1*1=1. 为了保证程序中使用了二维数组,需在打印完乘法口诀表后使用Arrays.deepToString打印二维数组中的内容。

    提醒: 格式化输出可使用String.format或者System.out.printf。

    输出格式说明

    每行末尾无空格。每一项表达式之间(从第1个表达式的第1个字符算起到下一个表达式的首字符之间),共有包含7个字符。如2*1=2 2*2=4从第1个2开始到第二项``2*2=4`首字母之间,总共有7个字符(包含空格,此例中包含2个空格)。

    输入样例:

    2 5

    输出样例:

    1*1=1 2*1=2 2*2=4 [[1*1=1], [2*1=2, 2*2=4]] 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 [[1*1=1], [2*1=2, 2*2=4], [3*1=3, 3*2=6, 3*3=9], [4*1=4, 4*2=8, 4*3=12, 4*4=16], [5*1=5, 5*2=10, 5*3=15, 5*4=20, 5*5=25]]

    答案

    import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int n = scanner.nextInt(); String[][] arr = new String[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { String str = (i + 1) + "*" + (j + 1) + "=" + (i + 1) * (j + 1); System.out.print(str); arr[i][j] = str; if (j < i){ int space = Math.max((7 - str.length()), 0); for (int k = 0; k < space; k++) { System.out.print(" "); } } } System.out.println(); } System.out.println(Arrays.deepToString(arr).replace(", null","")); } } }
    Processed: 0.014, SQL: 8