博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Poj 2304 Combination Lock(模拟顺、逆时钟开组合锁)
阅读量:4880 次
发布时间:2019-06-11

本文共 1060 字,大约阅读时间需要 3 分钟。

一、题目大意

        模拟一个开组合的密码锁过程。就像电影你开保险箱一样,左转几圈右转几圈的就搞定了。这个牌子的锁呢,也有它独特的转法。这个锁呢,有一个转盘,刻度为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);	 }  } }

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/AndyDai/p/4734125.html

你可能感兴趣的文章
有效防止SQL注入漏洞
查看>>
Linux chown命令
查看>>
十、I/O流——4-输入、输出流体系
查看>>
十二、网络编程——4-基于UDP协议的网络编程
查看>>
异常处理与调试6 - 零基础入门学习Delphi55(完)
查看>>
if语句三种形式
查看>>
正则表达式之字符串验证
查看>>
codeblocks如何支持_tmain?可移植代码的编码推荐
查看>>
省市联动 填坑
查看>>
canvas写的一个小时钟demo
查看>>
原来今天是冬至
查看>>
又混了一天班
查看>>
九度oj 1006
查看>>
HDU6400-2018ACM暑假多校联合训练1004-Parentheses Matrix-构造
查看>>
最短路问题专题
查看>>
《Redis复制与可扩展集群搭建》看后感
查看>>
Jquery Mobile总结
查看>>
223. Rectangle Area
查看>>
spring boot + velocity中文乱码解决方式
查看>>
读罢泪两行,人生成长必须面对的10个残酷事实
查看>>