九度 題目1336 液晶屏裁剪

2021-07-31 20:21:38 字數 1234 閱讀 2903

題目描述:蘇州某液晶廠一直生產a * b大小規格的液晶螢幕,由於該廠的加工工藝限制,液晶屏的邊長都為整數。最近由於市場需求發生變化,x : y比例的顯示器比較流行,該廠為了適應市場需求,需要改造原生產線,並將庫存的a * b大小的液晶屏進行裁剪,使之適應市場的需求。該廠同時希望,將a * b大小的液晶屏裁剪之後,不僅符合x : y的比例要求,同時在轉換為新比例液晶屏的過程中,保證因切割而丟棄的液晶邊角料最少。

你的任務就是根據原液晶屏大小和新的螢幕的比例,判斷是否能將庫存的液晶屏轉換為符合要求的液晶屏大小,並求出新的液晶屏的大小a』 b』;若不能加工成新的,則輸出0 0。

注:新的液晶屏邊長和舊的液晶屏邊長都為整數,並且長和寬不能交換。

輸入:測試資料報括多個,每個測試資料一行。

每行四個整數 a b x y

1) a、b表示原庫存液晶屏的長和寬

2) x、y表示新的液晶屏的長寬比例x : y

其中,1 <= a, b, x, y <= 10^9。

輸出:對應每個測試案例,輸出一行,每行包含兩個整數,由空格隔開:

1)       若答案存在,則輸出新的液晶屏的長寬 a』 b』

2)       若不存在,則輸出0 0

樣例輸入:

1920 1600 16 9

800 600 4 3

800 600 3 4

1 1 1 2

樣例輸出:

1920 1080

800 600

450 600

0 0

///

並沒有偷懶,這兩天去刷leetcode去了,先補上九度上的題,總結一下。

採用輾轉相除法求最大公約數,因為x:y不一定沒有公約數的,先要將公約數約去成為最簡式,然後再乙個乙個試。

#includeusing namespace std;

int com_div(int a,int b)//輾轉相除法

return a;

}int main()

if(j==0)

cout<<"0 0"<0)

if(j==0)

cout<<"0 0"<

九度題目1069

include include include using namespace std struct student buf 1001 int main sort buf,buf n scanf d m while m 0 else if strcmp x,buf mid no 0 else top...

九度題目1120

題目描述 給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入 輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。輸出 輸出這個字串的所有排列方式,每行乙個排列。要求字母...

九度OJ 題目1018

題目1018 統計同成績學生人數 題目描述 讀入n名學生的成績,將獲得某一給定分數的學生人數輸出。輸入 測試輸入包含若干測試用例,每個測試用例的格式為 第1行 n 第2行 n名學生的成績,相鄰兩數字用乙個空格間隔。第3行 給定分數 當讀到n 0時輸入結束。其中n不超過1000,成績分數為 包含 0到...