当前位置:网站首页>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 !
边栏推荐
- 简述xhr -xhr的基本使用
- Zatan 0516
- [the Nine Yang Manual] 2022 Fudan University Applied Statistics real problem + analysis
- 【头歌educoder数据表中数据的插入、修改和删除】
- 为什么要使用Redis
- Experiment 6 inheritance and polymorphism
- Miscellaneous talk on May 27
- [the Nine Yang Manual] 2019 Fudan University Applied Statistics real problem + analysis
- 【数据库 三大范式】一看就懂
- 编写程序,模拟现实生活中的交通信号灯。
猜你喜欢
(original) make an electronic clock with LCD1602 display to display the current time on the LCD. The display format is "hour: minute: Second: second". There are four function keys K1 ~ K4, and the fun
MATLAB打开.m文件乱码解决办法
Difference and understanding between detected and non detected anomalies
实验六 继承和多态
Custom RPC project - frequently asked questions and explanations (Registration Center)
7-5 走楼梯升级版(PTA程序设计)
Programme de jeu de cartes - confrontation homme - machine
强化学习基础记录
强化学习基础记录
Strengthen basic learning records
随机推荐
4. Branch statements and loop statements
仿牛客技术博客项目常见问题及解答(二)
3. Input and output functions (printf, scanf, getchar and putchar)
【黑马早报】上海市监局回应钟薛高烧不化;麦趣尔承认两批次纯牛奶不合格;微信内测一个手机可注册俩号;度小满回应存款变理财产品...
强化学习基础记录
Safe driving skills on ice and snow roads
简单理解ES6的Promise
[dark horse morning post] Shanghai Municipal Bureau of supervision responded that Zhong Xue had a high fever and did not melt; Michael admitted that two batches of pure milk were unqualified; Wechat i
记一次猫舍由外到内的渗透撞库操作提取-flag
强化学习基础记录
实验六 继承和多态
TypeScript快速入门
7-11 机工士姆斯塔迪奥(PTA程序设计)
Miscellaneous talk on May 14
为什么要使用Redis
仿牛客技术博客项目常见问题及解答(一)
canvas基础1 - 画直线(通俗易懂)
强化学习基础记录
【VMware异常问题】问题分析&解决办法
Redis实现分布式锁原理详解