12. 打印数字图形
时间限制:1.000S 空间限制:32MB
题目描述
先要求你从键盘输入一个整数n(1<=n<=9),打印出指定的数字图形。
输入描述
输入包含多组测试数据。每组输入一个整数n(1<=n<=9)。
输出描述
对于每组输入,输出指定的数字图形。 注意:每行最后一个数字后没有任何字符。
输入示例
5
输出示例
1
121
12321
1234321
123454321
1234321
12321
121
1
解法一(模拟)
思路分析:
- 按照题目意思,将数字模拟输出即可
实现代码如下:
java
public class k_12_PrintDigitalGraphics {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n; // 读取每组输入
while (in.hasNext()) {
n = in.nextInt();
printDigital(n);
}
}
private static void printDigital(int n) {
for (int i = 1; i <= n; ++ i) {
printNum(n, i);
}
for (int i = n-1; i >= 1; -- i) {
printNum(n, i);
}
}
private static void printNum(int n, int i) {
for (int j = i; j < n; ++ j) {
System.out.print(" ");
}
int j;
for (j = 1; j <= i; ++ j) {
System.out.print(j);
}
for (j = j-2; j >= 1; --j) {
System.out.print(j);
}
System.out.println();
}
}
运行结果如下:
运行时间: 457ms 消耗内存: 13684kb
复杂度分析:
- 时间复杂度:
- 空间复杂度: