[蓝桥杯]输出正反三角形
2020-01-30 本文已影响0人
二十五六岁的你
问题 1571: [蓝桥杯][算法提高VIP]输出正反三角形
题目描述
使用循环结构打印下述图形,打印行数n由用户输入。图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入。
注意:两行之间没有空行。
输入
无
输出
无
样例输入
5 4
样例输出
* *********
*** *******
***** *****
******* ***
********* *
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* User: 76147
* Date: 2020-01-26
* Time: 19:20
* Description:
* * *****
* *** ***
* ***** *
*/
public class 输出正反三角形 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int m = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(" ");
}
for (int j = 0; j < 3 * n - 1 + m; j++) {
if (j < n - i - 1
|| j > (n - i - 1 + 2 * i + 1 + m) + (2 * n - 1 - (2 * i + 1))
|| ((j >= n - i - 1 + 2 * i + 1) && (j < n - i - 1 + 2 * i + 1 + m))
) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++)
System.out.printf(" ");
for (int j = n - i; j > 1; j--)
System.out.printf(" ");
for (int k = 0; k <= i * 2; k++)
System.out.printf("*");
for (int j = 0; j < m; j++)
System.out.printf(" ");
for (int k = 1; k < (n - i) * 2; k++)
System.out.printf("*");
System.out.printf("\n");
}
}
}