書山有路勤爲徑,學海無涯苦作舟
點贊再看,養成習慣
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的矩形
最後得到
不要讓以後的你,討厭現在的你