当前位置:网站首页>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 !
边栏推荐
- [面試時]——我如何講清楚TCP實現可靠傳輸的機制
- 抽象类和接口的区别
- Simply understand the promise of ES6
- A comprehensive summary of MySQL transactions and implementation principles, and no longer have to worry about interviews
- [the Nine Yang Manual] 2021 Fudan University Applied Statistics real problem + analysis
- 5月27日杂谈
- 【Numpy和Pytorch的数据处理】
- 实验六 继承和多态
- 7-1 output all primes between 2 and n (PTA programming)
- Get started with typescript
猜你喜欢
Differences among fianl, finally, and finalize
UGUI—Text
撲克牌遊戲程序——人機對抗
PriorityQueue (large root heap / small root heap /topk problem)
【VMware异常问题】问题分析&解决办法
[面試時]——我如何講清楚TCP實現可靠傳輸的機制
Experiment 6 inheritance and polymorphism
C language Getting Started Guide
About the parental delegation mechanism and the process of class loading
Thoroughly understand LRU algorithm - explain 146 questions in detail and eliminate LRU cache in redis
随机推荐
Yugu p1012 spelling +p1019 word Solitaire (string)
5月14日杂谈
Experiment 4 array
Have you encountered ABA problems? Let's talk about the following in detail, how to avoid ABA problems
甲、乙机之间采用方式 1 双向串行通信,具体要求如下: (1)甲机的 k1 按键可通过串行口控制乙机的 LEDI 点亮、LED2 灭,甲机的 k2 按键控制 乙机的 LED1
Programme de jeu de cartes - confrontation homme - machine
The difference between overloading and rewriting
The difference between cookies and sessions
[hand tearing code] single case mode and producer / consumer mode
实验五 类和对象
Mixlab unbounded community white paper officially released
[VMware abnormal problems] problem analysis & Solutions
[graduation season · advanced technology Er] goodbye, my student days
Experiment 9 input and output stream (excerpt)
实验八 异常处理
Write a program to simulate the traffic lights in real life.
[MySQL table structure and integrity constraint modification (Alter)]
Mode 1 two-way serial communication is adopted between machine a and machine B, and the specific requirements are as follows: (1) the K1 key of machine a can control the ledi of machine B to turn on a
Attach the simplified sample database to the SQLSERVER database instance
Meituan dynamic thread pool practice ideas, open source