藍橋杯練習算法題(矩形切割成正方形)

書山有路勤爲徑,學海無涯苦作舟
點贊再看,養成習慣

目錄
1.前言
2.題目
3.代碼

3.前言:

最近在準備即將到來的藍橋杯比賽,拼命刷題,鍛鍊解題的算法,俗話說熟能生巧,現在的是去做大量的題目,來提升自己。

2.題目

小明有一些矩形的材料,他要從這些矩形材料中切割出一些正方形。
當他面對一塊矩形材料時,他總是從中間切割一刀,切出一塊最大的正方 形,剩下一塊矩形,然後再切割剩下的矩形材料,直到全部切爲正方形爲止。 例如,對於一塊兩邊分別爲 5 和 3 的材料(記爲 5×3),小明會依次切出 3×3、2×2、1×1、1×1 共 4 個正方形。 現在小明有一塊矩形的材料,兩邊長分別是 2019 和 324。請問小明最終會 切出多少個正方形?

提交方式
這是一道結果填空的題,你只需要算出結果後提交即可。本題的結果爲一 個整數,在提交答案時只填寫這個整數,填寫多餘的內容將無法得分。

讀完這個題目不管的覺得疑惑,還是簡單。
都請保持一個平和的心,如果過疑惑,請認真再看一下題目跟你的已知條件。
題目思路:
第一個例子,長寬分別爲5和3的矩形,可以切出4個正方形分別是3乘3,2乘2,1乘1,1乘1。

3.代碼

轉化成代碼的思路是:

		public static void main(String[] args) {
		int x=5,y=3,c=0;		//設三個變量,長,寬,統計正方形
		while(x>0||y>0) {		//長或者寬大於0進入循環
			if(x>y) {			//判斷長是否大於寬
			x-=y;				//長減去寬
			c++;				//統計次數1
			}
			if(y>x) {			//長小於寬後
				y-=x;			//寬減去長的
				c++;			//統計次數1
			}
			if(x==y) {			//長寬相等得到最後的正方形
				c++;			//統計最後的次數
				System.out.print(c);	//輸出一共多少正方形
				break;			//終止循環
			}
		}	

得出結果
在這裏插入圖片描述
確定代碼正確
帶入2019和324的矩形
最後得到

在這裏插入圖片描述
不要讓以後的你,討厭現在的你

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章