当前位置:网站首页>7-7 7003 combination lock (PTA program design)
7-7 7003 combination lock (PTA program design)
2022-07-06 13:56:00 【Programming Lindaiyu】
Now school begins on a weekday . Their dormitory is locked with a password ( See figure ) lock . He knows that the password is three logarithm , Such as 36-23-12, At the same time, know the method of unlocking . Its method :
(1) First turn clockwise for two turns .
(2) Turn counterclockwise to the position of the first number .
(3) Turn counterclockwise .
(4) Rotate clockwise to the second number .
(5) The pointer turns counterclockwise to the third number .
Know the initial position and password of the pointer , Ask how many degrees to unlock .

Input format :
There are multiple sets of data , Each group of data contains four numbers , Namely n,fisrt,middle,last, Are less than 40(n Is the starting position ) Greater than 0 Of . When the input is “0 0 0 0” when , end .
Output format :
Output the degree of rotation .
sample input :
0 30 0 30
5 35 5 35
0 20 0 20
7 27 7 27
0 10 0 10
9 19 9 19
0 0 0 0
sample output :
1350
1350
1620
1620
1890
1890
Code (Python):
d=[] # A list for storing results
n,first,middle,last=map(int,input().split())
def func(first,last): # Set function , Used to calculate degrees
if first<=last: # There are two cases , If the initial position is small , Normal minus
return (last-first)*9 #9 Is the degree represented by each scale
else: # If the initial position is large , It means that I passed 0 scale , You can't reduce it directly
return (40-first+last)*9 # First use 40 Subtract the end scale , Plus the initial scale is the total scale , multiply 9 Convert to degrees
while 1:
if n==0 and first==0 and middle==0 and last==0: # When the input is “0 0 0 0” when , end
break
else: # Otherwise, the input is not “0 0 0 0” when , Start calculating
res=0 #res It is the result of the number of each group
res+=720 #(1) First turn clockwise for two turns .
res+=func(first,n) #(2) Turn counterclockwise to the position of the first number . Anticlockwise, use the end to subtract the beginning
res+=360 #(3) Turn counterclockwise .
res+=func(first,middle) #(4) Rotate clockwise to the second number . Clockwise, use the beginning minus the end
res+=func(last,middle) #(5) The pointer turns counterclockwise to the third number . Anticlockwise, use the end to subtract the beginning
d.append(res) # Store the results of the calculation of each group in the list , So that they can be output together
n,first,middle,last=map(int,input().split()) # Continue to enter in order to enter the next cycle
for i in range(len(d)): # Output results
print(d[i])When I first saw this problem, I thought it was very difficult , Because it looks complicated . But I still tried it , It's not difficult to find , Is the most basic mathematical knowledge , There is no hard Algorithm . therefore , When you come across a seemingly difficult problem , And don't give up , Try to do it , To analyze , Maybe it's not very difficult , Or maybe it's really a little difficult , But how do you know if you will not try , What if you make it yourself ? So don't set limits on yourself , Try boldly , To challenge .
The above program gives more detailed comments , For novice Xiaobai's reference . The idea of program design or code implementation is not optimal , You are welcome to correct your mistakes or give better ideas .
I am a rookie who wants to be Kunpeng , Everyone's encouragement is my driving force , Welcome to like collection comments !
边栏推荐
- Using qcommonstyle to draw custom form parts
- Record a penetration of the cat shed from outside to inside. Library operation extraction flag
- Strengthen basic learning records
- 7-11 机工士姆斯塔迪奥(PTA程序设计)
- [the Nine Yang Manual] 2016 Fudan University Applied Statistics real problem + analysis
- [the Nine Yang Manual] 2018 Fudan University Applied Statistics real problem + analysis
- 1. Preliminary exercises of C language (1)
- Meituan dynamic thread pool practice ideas, open source
- A comprehensive summary of MySQL transactions and implementation principles, and no longer have to worry about interviews
- Poker game program - man machine confrontation
猜你喜欢

PriorityQueue (large root heap / small root heap /topk problem)

. How to upload XMIND files to Jinshan document sharing online editing?
![[hand tearing code] single case mode and producer / consumer mode](/img/b3/243843baaf0d16edeab09142b4ac09.png)
[hand tearing code] single case mode and producer / consumer mode

Matlab opens M file garbled solution

Strengthen basic learning records

Record a penetration of the cat shed from outside to inside. Library operation extraction flag

Nuxtjs quick start (nuxt2)

.Xmind文件如何上传金山文档共享在线编辑?

(原创)制作一个采用 LCD1602 显示的电子钟,在 LCD 上显示当前的时间。显示格式为“时时:分分:秒秒”。设有 4 个功能键k1~k4,功能如下:(1)k1——进入时间修改。

撲克牌遊戲程序——人機對抗
随机推荐
【Numpy和Pytorch的数据处理】
Wechat applet
Relationship between hashcode() and equals()
2022 Teddy cup data mining challenge question C idea and post game summary
Read only error handling
Experiment 7 use of common classes (correction post)
仿牛客技术博客项目常见问题及解答(三)
5月14日杂谈
Nuxtjs快速上手(Nuxt2)
Custom RPC project - frequently asked questions and explanations (Registration Center)
. Net6: develop modern 3D industrial software based on WPF (2)
7-6 矩阵的局部极小值(PTA程序设计)
Detailed explanation of redis' distributed lock principle
为什么要使用Redis
[graduation season · advanced technology Er] goodbye, my student days
[hand tearing code] single case mode and producer / consumer mode
Experiment 9 input and output stream (excerpt)
7-8 7104 约瑟夫问题(PTA程序设计)
FAQs and answers to the imitation Niuke technology blog project (III)
This time, thoroughly understand the MySQL index