一、题目链接
http://noi.openjudge.cn/ch0105/42/
二、解题思路
◎ 显然,矩形分为两种互斥的可能性;
→ 如果是实心矩形,所有行列位置均输出矩形符号;
→ 否则,是空心矩形,首行或者尾行或者首列或者尾列的位置输出矩形符号,其它行列位置输出空格。
三、实施步骤
◆ 方法public void printRectangle(int height, int width, char symbol, int type)处理所有业务逻辑:
→ 参数height为int类型的整数,代表矩形高度;
→ 参数width为int类型的整数,代表矩形宽度;
→ 参数symbol为char类型的字符,代表矩形符号;
→ 参数type为int类型的整数,代表矩形类型,其中0为空心,1为实心;
→ 方法printRectangle根据空心和实心标记,打印给定高度、宽度、符号的矩形。
◇ 方法printRectangle实施步骤如下:
◎ 通过标记i代表矩形的行数,i从1开始,到height为止,更新步长为1,循环处理如下:
→ 通过标记j代表每行的列数,j从1开始,到width为止,更新步长为1,循环处理如下:
*** 如果type==1:输出symbol;
否则:
···如果i==1||i==height||j==1||j==width:输出symbol;
否则:输出空格;
→ 输出回车。
◇ 在方法main中输入矩形高度height、矩形宽度width、矩形符号symbol、矩形类型type,将它们作为参数注入方法printRectangle,输出
结果。
四、Java程序
import java.util.Scanner;
public class Main {
public void printRectangle(int height, int width, char symbol, int type) {
for (int i = 1; i <= height; i++) {
for (int j = 1; j <= width; j++) {
if (type == 1) {
System.out.print(symbol);
}
else {
if (i == 1 || i == height || j == 1 || j == width) {
System.out.print(symbol);
}
else {
System.out.print(' ');
}
}
}
System.out.println();
}
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
int height = input.nextInt();
int width = input.nextInt();
char symbol = input.next().charAt(0);
int type = input.nextInt();
test.printRectangle(height, width, symbol, type);
}
}