題目連結
題意:
3 道密碼的密碼鎖
算解開的過程共轉多少角度(1圈360)
如上圖,倒三角形是指針的位置
轉中間的圓圈,會連整個刻度盤轉動
假設本來是 0 度,要轉到現在約 38 度
圓圈是如圖中順時針轉,刻度才會逆時針
所以題目敘述的方向要反向思考
題目給定一開始的位置,還有 3 個密碼 a, b, c
1. 順轉 2 圈
2. 順轉到密碼 a
3. 逆轉 1 圈
4. 逆轉到密碼 b
5. 順轉到密碼 c
解法:
基本上看懂題意,能用範例輸出推得,這題就OK了
照上面 5 個步驟累加即可
指針共有 40,角度有 360
可以先求指針變化量,最後 *9 得解
程式(Java):
題意:
3 道密碼的密碼鎖
算解開的過程共轉多少角度(1圈360)
如上圖,倒三角形是指針的位置
轉中間的圓圈,會連整個刻度盤轉動
假設本來是 0 度,要轉到現在約 38 度
圓圈是如圖中順時針轉,刻度才會逆時針
所以題目敘述的方向要反向思考
題目給定一開始的位置,還有 3 個密碼 a, b, c
1. 順轉 2 圈
2. 順轉到密碼 a
3. 逆轉 1 圈
4. 逆轉到密碼 b
5. 順轉到密碼 c
解法:
基本上看懂題意,能用範例輸出推得,這題就OK了
照上面 5 個步驟累加即可
指針共有 40,角度有 360
可以先求指針變化量,最後 *9 得解
程式(Java):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
public class Main { | |
public static void main(String args[]) { | |
Scanner sc = new Scanner(System.in); | |
while (sc.hasNext()) { | |
int s = sc.nextInt(); | |
int a = sc.nextInt(); | |
int b = sc.nextInt(); | |
int c = sc.nextInt(); | |
if (s+a+b+c == 0 && s*a*b*c == 0) | |
break; | |
int sum = 720; | |
sum += ((40+s-a) % 40) * 9; | |
sum += 360; | |
sum += ((40+b-a) % 40) * 9; | |
sum += ((40+b-c) % 40) * 9; | |
System.out.println(sum); | |
} | |
} | |
} |
留言
張貼留言