1. 程式人生 > >【遞歸】地盤劃分

【遞歸】地盤劃分

提交 page 最大的 sample closed code 一個 ++ status

[提交][狀態][討論版]

題目描述

修羅王和邪狼被關進監獄,該監獄的地下秩序實際被不少暗勢力所把持,這些暗勢力根據其實力不同,劃分出了大大小小的勢力範圍。具體劃分方式是這樣的:監獄是一個給定的矩形,每一個暗勢力的勢力範圍都必須是一個正方形,劃分時,最大的暗勢力盡可能多地從矩形中劃分一塊正方形,接下來,第二大的暗勢力在剩下的矩形中盡可能多的劃分一塊正方形……例如,圖2.1中所示是一個3×4的矩陣,可最少劃分為4個勢力範圍。

也就是說,取走一個3×3的正方形後,將問題規模變成3×1,然後變成2×1,最後變成1×1。規模每縮小一次,正方形的個數加1。
技術分享圖片

輸入

兩個int整數,即長和寬。

輸出

正方形個數。

樣例輸入

3 4

樣例輸出

4



技術分享圖片
 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n,m,cnt=1;
 8     scanf("%d%d",&n,&m);
 9     if(n<m)
10         swap(n,m);
11     while(n^m)
12 { 13 cnt++; 14 n-=m; 15 if(n<m) 16 swap(n,m); 17 } 18 cout << cnt << endl; 19 return 0; 20 }
View Code

【遞歸】地盤劃分