一、题目大意
模拟一个开组合的密码锁过程。就像电影你开保险箱一样,左转几圈右转几圈的就搞定了。这个牌子的锁呢,也有它独特的转法。这个锁呢,有一个转盘,刻度为0~39。在正北方向上有一个刻度指针。它的密码组合有三个数,开锁的套路为:先把刻度盘顺时针转两圈,然后再顺时针转到第一个数,再把刻度盘逆时针转一圈,再逆时针转到第二个数,最后再顺时针转到第三个数。这里的转到那个数是指将刻度盘上的数转到指针处。起始位置和组合密码有标准输入给出。求圆盘转过的总度数(顺时针加上逆时针)。注意刻度盘上还有一个凸起的圆盘,这个是不能转的。
二、题解
这个过程有一个不变的度数就是转的3圈数,1080度。然后就是顺时针和逆时针两种情况下,一个数转到另一个数要转的度数。顺时针情况下,从起始到结果的计算公式为:
result +=end > start ? (40+start-end) * 9 : (start-end) * 9;,二逆时针则是:result+=end > start ? (end-start) * 9 : (40+end-start) * 9;
三、java代码
import java.util.Scanner;public class Main{ public static void main(String args[]){ Scanner sc=new Scanner(System.in); int ini,one,two,three; while(true){ int result=1080; ini=sc.nextInt(); one=sc.nextInt(); two=sc.nextInt(); three=sc.nextInt(); if(ini+one+two+three==0) break; result+=one > ini ?(40+ini-one) * 9:(ini-one) * 9; result+=two > one ?(two-one) * 9:(40+two-one) * 9; result+=three > two ?(40+two-three) * 9:(two-three) * 9; System.out.println(result); } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。