โปรแกรมรูปแบบใน Java: พิมพ์รูปดาว พีระมิด และตัวเลข

⚡ สรุปอย่างชาญฉลาด

โปรแกรมรูปแบบใน Java พิมพ์รูปดาว ตัวเลข หรือตัวอักษรในรูปทรงคงที่ โดยแต่ละรูปสร้างขึ้นจากลูปซ้อนกัน ซึ่งลูปนอกสุดจะนับจำนวนแถว และลูปในสุดจะวางช่องว่างและตัวอักษร

  • 🔘 ความหมาย: การพิมพ์ลวดลายเป็นการจัดเรียงสัญลักษณ์ ตัวเลข หรือตัวอักษรให้เป็นรูปทรงที่กำหนดไว้บนหน้าจอควบคุม
  • ☑️ หมวดหมู่: รูปแบบต่างๆ แบ่งออกเป็นสามกลุ่ม ได้แก่ รูปแบบดาว รูปแบบตัวเลข และรูปแบบตัวอักษร
  • ✅ โครงสร้าง: ลูปภายนอกควบคุมแถว ในขณะที่ลูปภายในจัดการช่องว่างนำหน้าและอักขระที่พิมพ์
  • 🧪 ตัวอย่าง: โปรแกรมต่างๆ ได้แก่ โปรแกรมรูปครึ่งสามเหลี่ยม, นาฬิกาทราย, เพชร, สามเหลี่ยมตรงข้าม และพีระมิดตัวอักษร
  • 🛠️ เทคนิค: รูปร่างของตัวอักษรจะแปลงค่า int seed เป็น char โดยเริ่มต้นที่ 65 สำหรับตัวอักษร A
  • 📊 ประโยชน์: การเขียนแบบฝึกหัดช่วยพัฒนาทักษะการควบคุมลูป การคำนวณดัชนี และทักษะการซ้อมก่อนสัมภาษณ์

โปรแกรมรูปแบบใน Java เพื่อพิมพ์รูปทรงดาว พีระมิด และตัวเลข

โปรแกรมพิมพ์ลวดลายคือการออกแบบหรือสัญลักษณ์ที่มีตัวอักษรหรืออักขระอื่นๆ ในรูปแบบเฉพาะ Java การเข้ารหัสรูปแบบช่วยเพิ่มการสร้างลอจิกของโปรแกรมเมอร์ซึ่งช่วยให้พวกเขากลายเป็นโปรแกรมเมอร์ที่ดี

ตัวอย่างทั้งหมดในที่นี้ใช้เพียงแค่ลูปซ้อนกันและคำสั่งพื้นฐานเท่านั้น Java วากยสัมพันธ์

หมวดหมู่ของรูปแบบ

เราสามารถวาดลวดลายได้นับไม่ถ้วนใน Javaและรูปแบบทั้งหมดสามารถดำเนินการได้สามวิธีที่แตกต่างกัน

มีสามประเภทหลักที่ใช้ในการระบุ Java โปรแกรมรูปแบบ

  • รูปแบบดาว: In Java โปรแกรมลายดาว ชุดลายดาวเป็นชุด เครื่องหมายดอกจัน (*) ใช้สร้างรูปทรงต่างๆ เช่น รูปทรงพีระมิด รูปดาว สามเหลี่ยมมุมฉาก สามเหลี่ยมมุมฉาก รูปทรงเพชร สี่เหลี่ยมจัตุรัส และลวดลายอื่นๆ อีกมากมาย Java.
  • รูปแบบตัวเลข: เพื่อฝึกฝนการควบคุมการไหลของโปรแกรม รูปแบบอีกประเภทหนึ่งคือโปรแกรมรูปแบบตัวเลข Javaโปรแกรมรูปแบบตัวเลขประกอบด้วยตัวเลข/การนับ โดยส่วนใหญ่เราจะกำหนดค่าของ 'i' ซึ่งเป็นตัววนซ้ำเพื่อสร้างตัวเลขในการเขียนโปรแกรมรูปแบบ จำนวนรอบการวนซ้ำน้อยที่สุดสำหรับรูปแบบตัวเลขคือสองรอบ โปรแกรมรูปแบบตัวเลขใน Java นอกจากนี้ยังใช้งานได้กับระบบแถวและคอลัมน์ด้วย
  • รูปแบบตัวอักษร: การเขียนโปรแกรมรูปแบบอักขระประกอบด้วยอักขระที่อยู่ใน ตัวอักษรภาษาอังกฤษนี่เป็นอีกวิธีหนึ่งในการพัฒนาทักษะการเขียนโค้ดของคุณ แต่ในที่นี้เราจะพูดถึงอักขระ ไม่ใช่ตัวเลขหรือดาว รูปแบบอาจมีอักขระเดียวกันในรูปแบบทั้งหมดหรืออาจมีอักขระต่างกันก็ได้ ขึ้นอยู่กับตรรกะที่คุณใช้

ตารางด้านล่างแสดงให้เห็นถึงความเปลี่ยนแปลงระหว่างหมวดหมู่ต่างๆ

Category หน่วยพิมพ์ ค่าที่พิมพ์ออกมานั้นมาจากไหน ผลลัพธ์ตัวอย่าง
ลายดาว ดอกจัน เป็นสัญลักษณ์คงที่ ดังนั้นจะมีเพียงขอบเขตของลูปเท่านั้นที่เปลี่ยนแปลง * * * * * * * * * * * *
รูปแบบตัวเลข Digit ตัววนซ้ำ i หรือ j ถูกพิมพ์ออกมาโดยตรง 1 2 3
รูปแบบตัวอักษร จดหมาย เมล็ดพันธุ์จำนวนเต็มถูกแปลงเป็นชาร์ โดยเริ่มต้นที่ 65 สำหรับ A เอบีซี

ในทั้งสามกรณี ลูปภายนอกจะนับแถว ลูปภายในหนึ่งลูปจะพิมพ์ช่องว่างเพื่อจัดแนว และลูปภายในอีกหนึ่งลูปจะพิมพ์อักขระที่มองเห็นได้ มีเพียงหน่วยที่พิมพ์เท่านั้นที่เปลี่ยนแปลงไป

ทักษะการวนซ้ำแบบเดียวกันนี้ยังเป็นพื้นฐานของแบบฝึกหัดคลาสสิกอื่นๆ อีกด้วย เรียงลำดับการเลือก, การเรียงลำดับการแทรกและ หมายเลขอาร์มสตรอง โครงการ

รูปแบบดาวมาเป็นอันดับแรก เพราะสัญลักษณ์ไม่เปลี่ยนแปลง และมีเพียงขอบเขตของวงเท่านั้นที่มีความสำคัญ

โปรแกรมรูปแบบดาวใน Java

รูปแบบดาวจะพิมพ์เครื่องหมายดอกจันบนคอนโซล รูปร่างของรูปแบบทั้งหมดขึ้นอยู่กับโค้ดที่คุณเขียน

โปรแกรมรูปดาวสามเหลี่ยมครึ่งซ้าย:

โปรแกรมด้านล่างนี้จะพิมพ์รูปสามเหลี่ยมครึ่งซีกซ้ายดังนี้:

ข้อความที่แสดงผลในคอนโซลแสดงรูปสามเหลี่ยมครึ่งซีกด้านซ้ายที่ประกอบด้วยดาวเรียงกันหกแถว

public class LeftStarPattern{    
public static void main(String args[]){    
 int i, j, row = 6;       
   for (i=0; i<row; i++)    {  
      for (j=2*(row-i); j>=0; j--)         
      {  System.out.print(" ");  
	  }   
        for (j=0; j<=i; j++ )   
		{   
			System.out.print("* "); 
		}   
	System.out.println();  
	}
  }
}

Code คำอธิบาย:

  • ประกาศ int ฉัน, อินท์ เจ. ประกาศและเริ่มต้นตัวแปรแถวเป็น แถว int.
  • i เป็นตัววนซ้ำสำหรับลูป 'for' ภายนอก และ j เป็นตัววนซ้ำสำหรับลูป 'for' ภายใน 'แถว' มีจำนวนแถวที่ปิรามิดควรมี
  • ในการซ้อนสำหรับ คำว่า 'for' ภายนอกหมายถึงแถว และ 'for' ภายในหมายถึงคอลัมน์
  • ใน 'for' ภายนอก ให้เริ่มต้นตัววนซ้ำ 'i' ด้วย 0 ตั้งค่าเงื่อนไข i< แถว และเพิ่มค่า i
  • ตอนนี้ลูป 'for' ภายในเริ่มต้นด้วย 2*(row-i) และลดลง
  • คำว่า 'for' ที่ซ้อนกันจะพิมพ์พื้นที่บนหน้าจอคอนโซล
  • ภายนอกเนื้อความของ 'for' ที่ซ้อนกัน มีการวางลูป 'for' อีกอันหนึ่งไว้ นี่ 'เพื่อ' พิมพ์ดาว หลังจากดำเนินการ 'for' ที่ซ้อนกันแล้ว มันวนซ้ำจนกระทั่ง j<=i

โปรแกรมลายดาวนาฬิกาทราย:

นาฬิกาทรายนี้เกิดจากการนำพีระมิดสองอันมาวางซ้อนกัน:

ข้อความที่แสดงผลบนหน้าจอคอนโซลแสดงรูปทรงนาฬิกาทรายที่สร้างขึ้นจากพีระมิดรูปดาวสองอัน

public class Main
{
    public static void main(String[] args)
    {
        int rows = 5;            
        for (int i= 0; i<= rows-1 ; i++)
        {
            for (int j=0; j <i; j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
 { 
System.out.print("*" + " ");
 } 
System.out.println(""); 
} 
for (int i= rows-1; i>= 0; i--)
        {
            for (int j=0; j< i ;j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
            {
                System.out.print("*" + " ");
            }
            System.out.println("");
        }
        
    }
}

Code คำอธิบาย:

  • Code เริ่มต้นด้วย โมฆะคงที่สาธารณะ หลัก, แถว int จะกำหนดจำนวนแถวที่แก้วทรายจะมี
  • มีสอง 'สำหรับ' ที่ซ้อนกัน อันแรกจะแสดงปิรามิดขาลง และอันที่สองจะแสดงปิรามิดขาขึ้น
  • ในการซ้อนสำหรับ คำว่า 'for' ภายนอกหมายถึงแถว และ 'for' ภายในหมายถึงคอลัมน์
  • ในลูป 'for' ภายนอกจนถึง i<= แถว-1, ลูป 'for' ภายในจนถึง i ระบบการพิมพ์ พิมพ์พื้นที่บนคอนโซล
  • วงในวงที่สองจะพิมพ์เครื่องหมายดอกจันบวกช่องว่างบนคอนโซล
  • เมื่อลูปภายในแรกถูกดำเนินการอย่างเต็มที่ที่ i=0 หลังจากที่วงในที่สองถูกดำเนินการอย่างสมบูรณ์
  • จากนั้นวงรอบนอกก็เพิ่มขึ้น วงจรนี้จะดำเนินต่อไปจนกว่าเงื่อนไขจะเป็นเท็จ
  • ลูปที่ซ้อนกันที่สองจะแสดงปิรามิดขาขึ้น เพียงแค่เปลี่ยนการกำหนดค่าเริ่มต้นและเงื่อนไขของลูปด้านนอกของลูปที่ซ้อนกันแรก
  • มันจะแสดงปิรามิดขาขึ้น ปิระมิดทั้งขาลงและขาขึ้นจะทำให้ ลายดาวนาฬิกาทราย.

โปรแกรมลายดาวทรงเพชร:

พีระมิดที่ชี้ขึ้นและชี้ลงทำให้เกิดเพชรเม็ดนี้:

ข้อความที่แสดงผลบนหน้าจอคอนโซลแสดงรูปทรงเพชรที่ประกอบด้วยดาวหลายดวงเรียงกันเป็นพีระมิดสองอัน

public class Main
{
	public static void main(String args[])
	{
		int n, i, j, space_0 = 1;
		n = 6;
		space_0 = n - 1;
		for (j = 1; j<= n; j++)
		{
			for (i = 1; i<= space_0; i++)
			{
				System.out.print(" ");
			}
		space_0--;
		for (i = 1; i <= 2 * j - 1; i++)
		{ 
			System.out.print("*");
		}
		System.out.println(""); 
	}
	space_0 = 1;
	for (j = 1; j<= n - 1; j++)
	{
	for (i = 1; i<= space_0; i++)
	{
		System.out.print(" ");
	}
	space_0++;
	for (i = 1; i<= 2 * (n - j) - 1; i++)
	{
		System.out.print("*");
	}
	System.out.println("");
	}
  }
}

Code คำอธิบาย:

  • ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ลายดาวเพชร, 'n' คือจำนวนแถวที่จัดเก็บ n-1 ใน space_0
  • ในการซ้อนสำหรับ คำว่า 'for' ภายนอกหมายถึงแถว และ 'for' ภายในหมายถึงคอลัมน์
  • เครื่องหมาย 'for' ที่ซ้อนกันตัวแรกจะแสดงปิรามิดขาขึ้น ลูป 'for' ภายนอกจนถึง n และด้านในสำหรับลูปจนถึง space_0 ลูปด้านในแสดงพื้นที่บนคอนโซล
  • มีอีกอันภายใน 'for' ที่วนซ้ำจนกระทั่ง i<= 2 * j – 1 และแสดงดาวนอกระบบการพิมพ์ 'for' ภายในนี้จะพิมพ์บรรทัด วงที่ซ้อนกันนี้จะพิมพ์ปิรามิดด้านบน
  • อีกอันที่ซ้อนกัน 'for' จะแสดงปิรามิดลง ลูป 'for' ด้านนอกจนกระทั่ง i<=n-1 'for' ภายในอันแรกจะพิมพ์พื้นที่และอันที่สองสำหรับดาวพิมพ์
  • ภายนอก 'for' ด้านใน ให้พิมพ์ช่องว่างบรรทัด ปิระมิดทั้งบนและล่างทำให้เกิดลวดลายเพชร

โปรแกรมรูปแบบอวกาศลายดาวสามเหลี่ยมมุมฉาก:

ค่าสัมบูรณ์ของ j และ i จะแทรกช่องว่างเหล่านี้:

เอาต์พุตคอนโซลแสดงรูปสามเหลี่ยมมุมฉากของดาวที่มีระยะห่างตามค่าสัมบูรณ์

public class AsterikProgramJava { 
 public static void main(String[] args) { 
  for(int i=1;i<=10;i++) 
  { 
    for(int j=1;j<=i+i;j++)
	{
		int mid; 
		mid=j%i; 
		if(mid==0) 
			System.out.print("* "); 
		else 
			System.out.print("*");
	}
	System.out.print("\n");
	}
 }
}

Code คำอธิบาย:

  • ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ด้านบนแบบ รหัส 'for' ภายนอกจะดูแลจำนวนแถว และ 'for' ภายในจะรักษาคอลัมน์
  • เมื่อค่าภายนอก 'for' เป็น 1 ซึ่งหมายถึงแถวแรก และเมื่อค่าภายใน 'for' เป็น 1 หมายความว่าเป็นคอลัมน์แรก
  • ภายใน 'for' ให้ประกาศตัวแปรชื่อ mid และเก็บส่วนที่เหลือของ j/i ซึ่งจะแบ่งค่า i และ j เพื่อให้ได้โมดูลัส
  • ดังนั้น หากโมดูลัสเป็น 0 ให้แสดงเครื่องหมายดอกจันและช่องว่าง มิฉะนั้น ให้แสดงเฉพาะเครื่องหมายดอกจันเท่านั้น ด้านนอกของ 'for' ด้านใน ให้พิมพ์บรรทัดหนึ่ง

ทันสมัย Java บันทึกย่อ: จาก Java 11 วงวนอวกาศสามารถแทนที่ได้ด้วย System.out.print(" ".repeat(n))และสร้างแต่ละแถวในลักษณะ StringBuilder ก่อนหนึ่ง println() การเรียกใช้งานเร็วขึ้น โค้ดเดิมยังคงอยู่เหมือนเดิม เพราะมันแสดงการคำนวณทางคณิตศาสตร์อย่างชัดเจน

แลกเปลี่ยนping เครื่องหมายดอกจันสำหรับตัวนับลูปจะเปลี่ยนรูปดาวแต่ละรูปให้เป็นรูปตัวเลข

โปรแกรมรูปแบบตัวเลขใน Java

รูปแบบตัวเลขประกอบด้วยตัวเลข เราสามารถวาดรูปทรงต่างๆ มากมายจากรูปแบบตัวเลขได้

โปรแกรมรูปแบบครึ่งสามเหลี่ยมตรงข้าม:

การนับถอยหลังแล้วนับขึ้น จะได้รูปสามเหลี่ยมตัวเลขนี้:

เอาต์พุตคอนโซลแสดงตัวเลขครึ่งสามเหลี่ยมด้านตรงข้าม

public class Number_p  {  
	public static void main(String[] args)   {  
	int i, j, rows_0=5;  
	for (i = rows_0; i >= 1; i--) 
	{  
		for (j = 1; j <= i; j++)  
		{  
			System.out.print(j+" "); 
		}  
		System.out.println();  
	}  
	for (i = 2; i <= rows_0; i++)   {  
		for (j = 1; j <= i; j++) {  
			System.out.print(j+" ");
		}  
		System.out.println(); 
		}
	}
}

Code คำอธิบาย:

  • ในการวาดรูปแบบนี้ เราจะใช้ลูป 'for' สองลูปที่ซ้อนกัน อันหนึ่งจะพิมพ์ปิรามิดอันแรก และอีกอันจะแสดงปิรามิดอันที่สอง
  • ประกาศ int ฉัน, int j และ int row_0 และเริ่มต้นแถวตามจำนวนแถวที่คุณต้องการ ที่นี่ค่าแถวคือ 5
  • ตั้งค่าการวนซ้ำ 'for' ด้านนอกของ 'for' แรกที่ซ้อนกัน เริ่มต้น i ด้วยจำนวนแถว และวนซ้ำจนกระทั่ง i >= และลดตัววนซ้ำ 'for' ภายนอกนี้เกี่ยวข้องกับแถว
  • ใน 'for' ภายใน ให้ตั้งค่าเงื่อนไข j=1 และวนซ้ำจนกระทั่ง j<=i ในส่วนเนื้อหาของลูปด้านใน ให้แสดงตัวแปร j พร้อมเว้นวรรค
  • ตอนนี้อยู่ใน 'for' ที่ซ้อนกันที่สอง ให้เปลี่ยนเงื่อนไข 'for' ภายนอกของ 'for' แรกที่ซ้อนกัน เริ่มต้นด้วย 2 และวนซ้ำจนกระทั่งแถว i<=
  • และวงในจะวนซ้ำจนกว่าจะถึง จากนั้นจะแสดงข้อความบนคอนโซล เช่นเดียวกับในวงด้านในของ 'for' แรกที่ซ้อนกันอยู่นอกเนื้อความของพื้นที่บรรทัดด้านในสำหรับการพิมพ์

ตัวเลขซ้ำกันในคอลัมน์สามเหลี่ยมมุมฉาก โปรแกรมรูปแบบ:

การรีเซ็ตตัวนับในแต่ละแถวจะทำให้ตัวเลขซ้ำกัน:

แสดงผลทางคอนโซลเป็นรูปสามเหลี่ยมมุมฉากของตัวเลข โดยแต่ละแถวเริ่มต้นที่เลขหนึ่ง

public class Number_pattern  {  
	public static void main(String args[])   
	{   
		int i, j,number, n=7;   
	for(i=0; i<n; i++)  
	{   
		number=1;   
		for(j=0; j<=i; j++)  
		{   
			System.out.print(number+ " ");   
			number++; 
		}   
		System.out.println();   
	} 
  } 
}

Code คำอธิบาย:

  • ในโค้ดตัวอย่าง ประกาศ int ฉัน, อินท์เจ หมายเลขภายในเบอร์ และ int n
  • จากนั้นกำหนดค่าเริ่มต้น n ด้วยค่าของจำนวนแถวที่คุณต้องการ ซึ่งก็คือ 7
  • ในส่วนนอก 'for' ให้เริ่มการวนซ้ำจากค่า 0 และวนซ้ำจนกระทั่งถึง n
  • คุณสามารถเริ่มต้นตัวเลขภายในหรือภายนอกวงได้
  • ในส่วน 'for' ด้านใน ให้วนซ้ำจนกระทั่ง j น้อยกว่าหรือเท่ากับที่ฉันไปถึง และแสดงตัวเลขด้วยการเว้นวรรค
  • ภายนอกเนื้อความของด้านใน 'สำหรับ' ให้พิมพ์ช่องว่างบรรทัด
  • คำว่า 'for' ภายในจะวนซ้ำจนกระทั่งเงื่อนไขกลายเป็นเท็จ เมื่อเงื่อนไขนี้กลายเป็นเท็จ วงด้านนอกจะเพิ่มขึ้นอีกครั้งและดำเนินการคำสั่งภายใน 'for' จนกว่าเงื่อนไขจะกลายเป็นเท็จ
  • ขั้นตอนนี้จะเกิดขึ้นซ้ำจนกระทั่งวงรอบนอกกลายเป็นเท็จ

โครงสร้างเดียวกันนี้จะพิมพ์ตัวอักษรเมื่อแปลงค่าเริ่มต้นที่เป็นจำนวนเต็มเป็นอักขระ

โปรแกรมรูปแบบตัวอักษรใน Java

รูปแบบตัวอักษรประกอบด้วยตัวอักษรภาษาอังกฤษ เราสามารถสร้างโปรแกรมรูปแบบตัวอักษรที่เจ๋งและน่าทึ่งได้ใน Java ตัวอย่างบางส่วนจะกล่าวถึงด้านล่างนี้

โปรแกรมรูปแบบ Half Pyramid ของตัวละคร:

การแปลงค่า int seed เป็น char จะพิมพ์ตัวอักษรเหล่านี้:

แสดงผลทางคอนโซลแสดงตัวอักษรพิมพ์ใหญ่ A ถึง F เรียงเป็นรูปครึ่งพีระมิด

public class Character_p{
    public static void main(String[] args){
        int alphabet = 65;
        for (int i = 0; i <= 5; i++){
            for (int j = 0; j <= i; j++)
            {   
				System.out.print((char) alphabet + " ");}
				alphabet++;
				System.out.println();
			}
		}
}

Code คำอธิบาย:

  • ประกาศตัวอักษรและเริ่มต้นด้วยค่า 65
  • วงนอกสำหรับเริ่มลูปจาก 0 และทำซ้ำจนกระทั่ง i มีค่า 5 หรือน้อยกว่า
  • ภายใน for นั้น การวนซ้ำเริ่มต้นที่ 0 และวนซ้ำจนกระทั่ง j น้อยกว่าหรือเท่ากับ i
  • จากนั้นพิมพ์อักขระและช่องว่างบนหน้าจอเอาต์พุต
  • ในการพิมพ์อักขระ เราจะพิมพ์ตัวอักษรจากจำนวนเต็มหนึ่งไปอีกอักขระ
  • ภายนอกตัวตัวอักษร เพิ่มตัวอักษรและพิมพ์เส้นบนหน้าจอเอาท์พุต (อักขระ) แปลงค่าตัวอักษรเป็นอักขระ

รูปแบบพีระมิด/สามเหลี่ยมใน Java:

วงลูปเว้นวรรคจะจัดเรียงตัวอักษรให้อยู่ตรงกลางเป็นรูปพีระมิด:

เอาต์พุตคอนโซลแสดงรูปพีระมิดตัวอักษรพิมพ์ใหญ่ที่อยู่ตรงกลาง

public class CharacterPattern  
{              
	public static void main(String[] args){  
		for (int i = 0; i <= 8; i++)   
		{  
			int alphabet_0 = 65;   
			for (int j = 8; j > i; j--)  
			{  
				System.out.print(" ");  
			}  
			for (int k = 0; k <= i; k++)  
			{  
				System.out.print((char) (alphabet_0 + k) + " ");  
			}  
		System.out.println();  
	}  
  }  
} 

Code คำอธิบาย:

  • ในโค้ดตัวอย่างนี้ เราใช้ลูป 'for' สามลูป ลูปหนึ่งเป็นลูปด้านนอก และอีกสองลูปซ้อนกันอยู่ภายใน 'for' ภายนอก
  • 'for' ภายนอกเริ่มต้นจาก 0 และวนซ้ำจนกระทั่งค่าเป็น 8 หรือน้อยกว่า
  • ในส่วนเนื้อความของส่วนนอก 'for' เราได้เตรียมใช้งานตัวแปรตัวอักษรประเภทจำนวนเต็มด้วยค่า 65 และซ้อนอีกตัว 'for' ไว้ในเนื้อความ
  • 'for' ด้านในอันแรกคือการย้อนกลับของลูป 'for' ด้านนอก และในส่วนลำตัวของมันคือพิมพ์พื้นที่บนคอนโซล ภายนอกร่างกายยังมีอีก 'สำหรับ' มันวนซ้ำเหมือนวงรอบนอก
  • ในเนื้อความของวงในที่สอง ให้พิมพ์อักขระโดยพิมพ์ตัวอักษร +k แล้วพิมพ์โดยเว้นวรรคบนคอนโซล ด้านนอกของส่วนด้านในที่สอง 'for' ให้พิมพ์บรรทัด

คำถามที่พบบ่อย

นับถอยหลังจากจำนวนแถวทั้งหมด รูปทรงที่จัดชิดซ้ายไม่จำเป็นต้องนับ รูปทรงพีระมิดที่อยู่ตรงกลางต้องนับจำนวนแถวลบด้วยดัชนีแถวปัจจุบัน และตัวอย่างข้างต้นใช้ 2*(แถว-i)

ผู้ช่วย AI สามารถเปรียบเทียบข้อความที่คาดหวังและข้อความจริงในคอนโซลทีละแถว และระบุขอบเขตของลูปที่คลาดเคลื่อนไปหนึ่งตำแหน่ง ลองรันโปรแกรมที่แก้ไขแล้วด้วยตนเองอีกครั้งก่อนที่จะเชื่อถือการแก้ไขนั้น

ใช่. นักบิน GitHub สร้างรูปทรงที่ใช้งานได้จากคำอธิบายเพียงบรรทัดเดียว ตรวจสอบลูปการเว้นวรรค เนื่องจากโค้ดที่สร้างขึ้นมักจะจัดวางรูปภาพให้เยื้องไปหนึ่งคอลัมน์

เพิ่มการตรวจสอบขอบเขตภายในลูปที่อยู่ด้านในสุด พิมพ์สัญลักษณ์เฉพาะในแถวแรก แถวสุดท้าย หรือคอลัมน์แรกและคอลัมน์สุดท้ายเท่านั้น พิมพ์ช่องว่างในส่วนอื่นๆ

ใช่แล้ว เมธอดเรียกตัวเองแบบหนึ่งจะพิมพ์แถวออกมาแล้วเรียกตัวเองซ้ำอีกครั้งโดยเพิ่มจำนวนนับ ในขณะที่อีกเมธอดหนึ่งจะจัดการลำดับ ผลลัพธ์ที่ได้เหมือนกัน แต่ลูปจะช่วยหลีกเลี่ยงเฟรมสแต็กส่วนเกิน

การพิมพ์รูปสามเหลี่ยมที่มี n แถว จะใช้การเขียนอักขระประมาณ n²/2 ครั้ง ดังนั้นต้นทุนจึงเป็น O(n²) ส่วนผลลัพธ์นั้นจะเพิ่มขึ้นแบบกำลังสอง ดังนั้นจึงไม่มีอัลกอริทึมใดที่พิมพ์รูปเดียวกันได้เร็วกว่านี้

65 คือรหัส ASCII และ Unicode ของตัวอักษร A ตัวใหญ่ การแปลง 65 เป็น char จะได้ A และ 66 จะได้ B ดังนั้นการเพิ่มค่า int และการแปลงค่าจึงเป็นการไล่เรียงตัวอักษรตามลำดับ

ฟังก์ชันนี้ช่วยให้ควบคุมลูป การคำนวณดัชนี และความสามารถในการทดสอบโค้ดบนกระดาษโดยไม่ต้องใช้ไลบรารีใดๆ ผู้สมัครที่มีคุณสมบัติตามนี้ควรมีคุณสมบัติตามที่กล่าวมา tracโดยปกติแล้ว คำสั่ง es one row จะเข้าใจการวนซ้ำแบบซ้อนกันได้อย่างถูกต้อง

สรุปโพสต์นี้ด้วย: