2010年2月3日 星期三

Problem 10550 Combination Lock,轉動多少角度

Problem 10550 此題是輸入刻度開始位置、第一個密碼、第二個密碼、第三個密碼,接著請你算出要開鎖的話,需轉動多少角度。

仔細觀察鎖的構造,不難發現它如果順時針轉,對於刻度則是逆時針轉;反之,則相反。所以只須設定幾個條件即可求出答案。

以下為主程式區段程式碼:
scanf("%d %d %d %d",&startNum, &pw1, &pw2, &pw3);
if (startNum == 0 && pw1 == 0 && pw2 == 0 && pw3 == 0) break;
sum = 720 + 360;

if (startNum >= pw1) sum += (startNum - pw1) * 9;
else if (startNum < pw1) sum += (startNum + 40 - pw1) * 9;

if (pw1 > pw2) sum += (40 - pw1 + pw2) * 9;
else if (pw1 <= pw2) sum += (pw2 - pw1) * 9;

if (pw2 >= pw3) sum += (pw2 - pw3) * 9;
else if (pw2 <= pw3) sum += (40 - pw3 + pw2) * 9;

By David.K

p10550題目連結
回ACM題庫目錄
回首頁

沒有留言: