การพิมพ์รูปแบบดาวสี่เหลี่ยมจัตุรัส (Square Star Pattern) ใน Java
รูปสี่เหลี่ยมจัตุรัสประกอบด้วยแถวและคอลัมน์เท่ากัน ทุกตำแหน่งเป็นดาว ใช้ Nested Loops แบบง่ายที่สุด
อัลกอริทึม
- รับความยาวด้าน
n - ลูปแถว i = 1 ถึง n
- ลูปคอลัมน์ j = 1 ถึง n
- พิมพ์ดาวทุกตำแหน่ง
- ขึ้นบรรทัดใหม่หลังแต่ละแถว
ตัวอย่างที่ 1: รับค่าจากผู้ใช้ (Scanner)
import java.util.Scanner;
public class SquareStarPattern {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("ป้อนความยาวด้าน: ");
int n = scanner.nextInt();
System.out.println("รูปแบบสี่เหลี่ยมจัตุรัส:");
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
ตัวอย่างที่ 2: ค่าคงที่ (Hardcoded)
public class SquareStarPattern {
public static void main(String[] args) {
int n = 8;
System.out.println("ความยาวด้าน: " + n);
System.out.println("รูปแบบสี่เหลี่ยมจัตุรัส:");
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
ผลลัพธ์ (n=5)
รูปแบบสี่เหลี่ยมจัตุรัส:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
การปรับปรุง: ใช้ StringBuilder และ String.repeat() (Java 11+)
public class SquareStarModern {
public static void main(String[] args) {
int n = 8;
StringBuilder sb = new StringBuilder();
String row = "* ".repeat(n) + "\n";
for (int i = 0; i < n; i++) {
sb.append(row);
}
System.out.print(sb.toString());
}
}
รูปแบบแปรผัน: Hollow Square (สี่เหลี่ยมว่าง)
public class HollowSquare {
public static void main(String[] args) {
int n = 6;
for (int i = 1; i <= n; i++) {
if (i == 1 || i == n) {
System.out.println("*".repeat(n));
} else {
System.out.println("*" + " ".repeat(n - 2) + "*");
}
}
}
}
ผลลัพธ์ Hollow Square (n=6)
******
* *
* *
* *
* *
******
รูปแบบแปรผัน: Square with Numbers
public class NumberSquare {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
System.out.print(j + " ");
}
System.out.println();
}
}
}
ผลลัพธ์ Number Square (n=5)
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
การวิเคราะห์
- Time: O(n²)
- Space: O(1) เพิ่มเติม
- รูปแบบง่ายที่สุด สำหรับฝึก Nested Loops พื้นฐาน
- ใช้
String.repeat()ทำให้โค้ดกระชับมาก (Java 11+)