【java】刷題——疊筐問題

  • 任務與代碼
/*
 * 日期:2020/4/1
 * 作者:陳happy
 * 題目描述:把一個個大小差一圈的筐疊上去,使得從上往下看時,邊框花色交錯。
 * 輸入:一個個三元組,分別是,外框尺寸n(0<n<80的奇整數),中心花色字符,外筐花色字符,後二者都爲ASCII可見字符;
 * 輸出:疊在一起的筐圖案,中心花色與外筐花色字符從內層起交錯相疊,多筐相疊時,最外筐的角總是被打磨掉。疊筐與疊筐之間應有一行間隔。
 */
import java.util.*;
public class test2_8 {
	public static void main (String args[])
	{
		boolean first=true;
		String str[][]=new String[81][81];
		Scanner t= new Scanner(System.in);
		while(t.hasNext())
		{
		int n;
		String c;
		n=t.nextInt();
		String a=t.next();
		String b=t.next();	
		if(first==true) 
			{first=false;}
		else
		System.out.println(" ");
		for(int i=0;i<=n/2;i++) {
			int length=n-2*i;
			if((n/2-i)%2==0) c=a;
			else c=b;
			for(int k=i;k<=i+length-1;k++) {
				str[i][k]=c;
				str[k][i]=c;
				str[i+length-1][k]=c;
				str[k][i+length-1]=c;
			}
		}
		if(n!=1)
		{
			str[0][0]=" ";
			str[0][n-1]=" ";
			str[n-1][0]=" ";
			str[n-1][n-1]=" ";
		}
		for(int i=0;i<=n-1;i++) {
			for(int j=0;j<=n-1;j++) {
				System.out.print(str[i][j]);
			}
			System.out.println("");
		}
		}	
		t.close();
	}
}

運行結果:
在這裏插入圖片描述

  • 心得與反思
  1. 在拿到題目前一定要先畫圖明確首先要確定哪幾個量,將問題分解成簡單的小問題;
  2. 在寫for循環是需要明確取值從哪裏開始、到哪裏結束,是<還是<=;
  3. 最後一定要注意需要滿足題目的所有要求:疊筐與疊筐之間有一行空格;
  4. No one travels without purpose, those who are lost wish to be lost.Fighting!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章