Combination Lock

news2024/11/16 17:48:18

 题目描述

新学期开学,您又回到了学校。您需要记住如何操作储物柜上的组合锁。一个组合锁的常见设计如图 1 所示。组合锁有一个圆形刻度表盘,在表盘上,有 40 个编号为从 0 至 39 的刻度,正上方有一个刻度指针。一个组合由这些数字中的 3 个数组成;例如:15-25-8,打开组合锁的步骤如下:

  • 顺时针转动表盘2整圈;
  • 顺时针转到刻度指针指向组合的第一个数字处停止;
  • 逆时针转动表盘1整圈;
  • 继续逆时针转动,直到组合的第二个数字处停止;
  • 再次顺时针转动表盘,直到组合的第三个数字处停止
  • 拉动锁柄,锁就会被打开。

图 1

给定表盘刻度指针的初始位置和开锁的组合,在打开锁时,表盘总共旋转了多少度(顺时针加逆时针)?


输入输出格式

输入格式

输入给出若干测试用例。每个测试用例都有一行输入,给出从 0 到 39 之间的 4 个数字。第一个数字是表盘刻度指针的位置。接下来的三个数字就是组合。组合中的连续数字是不同的。最后一个测试用例的后面的一行给出 0 0 0 0。

输出格式

对于每个测试用例,输出一行,给出一个整数:要打开锁必须转动表盘的度数。


输入输出样例1

输入

  1. 0 30 0 30
  2. 5 35 5 35
  3. 0 20 0 20
  4. 7 27 7 27
  5. 0 10 0 10
  6. 9 19 9 19
  7. 0 0 0 0

输出

  1. 1350
  2. 1350
  3. 1620
  4. 1620
  5. 1890
  6. 1890

解题思路

计算时,先按照刻度进行计算,然后转换为度数。

代码文件中,输入和输出用C++的cin和count流对象实现。因此头文件中引入<iostream>。

整型变量s,a,b,c表示每一个测试用例:s,表盘刻度指针的位置;a,b,c开锁组合的三个数字。整型变量cost表示转动表盘的刻度数。

每次while循环处理一个测试用例。

根据开锁规则,“顺时针转动表盘两圈”,“逆时针转动表盘一圈”,所以对于每个测试用例cost的初始值为120.表盘刻度指针的初始位置s和开锁组合的第一个数a,顺时针转动表盘,使得表盘刻度指针指向a,则转动表盘的刻度数为(40+s-a)%40,同理,给出第2、3次转动表盘的刻度数分别为(40+b-a)%40、(40+b-c)%40.最后,表盘刻度数转化为度数


代码文件

#include <iostream>
using namespace std;
int main () {
    int s,a,b,c,cost;
    while (cin>>s>>a>>b>>c){
        if(s+a+b+c==0) break;
        cost =120;
        cost+=(40+s-a)%40;
        cost+=(40+b-a)%40;
        cost+=(40+b-c)%40;
        cout<<cost*9<<endl;
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1067035.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ggkegg | 用这个神包玩转kegg数据库吧!~(一)

1写在前面 好久没更了&#xff0c;实在是太忙了&#xff0c;值班真的是根本不不睡觉啊&#xff0c;一忙一整天&#xff0c;忙到怀疑人生。&#x1f62d; 最近看到比较&#x1f525;的就是ggkegg包&#xff0c;感觉使用起来还是有一定难度的。&#x1fae0; 和大家分享一下使用教…

波浪input输入框文字边框动画

一个input输入框的小动画,大家可以按需引入和修改 input的动画表现为,文字提示波浪动画 效果图如下 源码如下 tips: 有不懂的可以在评论区问博主 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name&q…

mac有些软件无法删除,CleanMyMac X 4.14.3轻松帮你解决

作为Mac用户&#xff0c;你会发现mac有些软件无法删除&#xff0c;这会导致不必要的空间浪费&#xff0c;也可能会干扰你的系统稳定性。但是不用担心&#xff0c;小编会告诉你遇到这种情况应该怎么办&#xff1f; mac有些软件无法删除 首先&#xff0c;让我们一起探究一下背后…

轻量级MobileSAM:比FastSAM快4倍,处理一张图像仅需10ms(附源代码)

论文地址&#xff1a;https://arxiv.org/pdf/2306.14289.pdf 代码地址&#xff1a;https://github.com/ChaoningZhang/MobileSAM 一、概要简介 SAM是一种prompt-guided的视觉基础模型&#xff0c;用于从其背景中剪切出感兴趣的对象。自Meta研究团队发布SA项目以来&#xff0c…

​孤网双机并联逆变器下垂控制策略(包括仿真模型,功率计算模块、下垂控制模块、电压电流双环控制模块​)(Simulink仿真)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

土木硕设计院在职转码上岸

一、个人介绍 双非土木硕&#xff0c;98年&#xff0c;目前在北京&#xff0c;职位为前端开发工程师&#xff0c;设计院在职期间自学转码上岸&#x1f33f; 二、背景 本人于19年开始土木研究生生涯&#xff0c;研二期间去地产实习近半年(碧桂园和世茂&#xff0c;这两家的地产…

java api System类

currentTimeMills() package daysreplace;public class Test {public static void main(String[] args) {long start System.currentTimeMillis();// System.out.println(start"毫秒");for (int i 0; i < 100; i) {System.out.println("计算执行100次输出…

迭代合成中小量液体样品静态法饱和蒸气压高精度自动测量解决方案

摘要&#xff1a;针对目前静态法液体饱和蒸气压测量中存在测量精度差、自动化程度低以及无法进行微量液体样品测试的问题&#xff0c;本文提出了微量样品蒸气压高精度自动测量解决方案。解决方案基于静态法原理&#xff0c;采用了低漏率的测试装置和高精度电容真空计&#xff0…

MM-Camera架构-Open 流程分析

文章目录 1 camera open总结2 Camera Open 代码流程分析2.1 Java 层 Camera Class 使用介绍2.2 Frameworks 层 Camera.java 分析2.2.1 \[JNI] CameraService初始化 native\_setup( ) —> android\_hardware\_Camera\_native\_setup( )2.2.2 \[AIDL] interface ICameraServic…

【Java 进阶篇】HTML文本标签详解

HTML&#xff08;Hypertext Markup Language&#xff09;是构建Web页面的基础。在HTML中&#xff0c;文本标签用于定义和呈现文本内容。本文将详细介绍HTML中的一些常用文本标签&#xff0c;包括段落、标题、文本样式等&#xff0c;适用于初学者&#xff0c;让您了解如何创建和…

可视化大屏怎么打破数据孤岛,整合分析数据?

在今天这个数据驱动的时代&#xff0c;企业面临着海量数据带来的挑战。其中最突出的问题之一就是数据孤岛现象&#xff0c;它限制了数据的全面利用和价值挖掘。但这一问题在奥威BI系统前都不算什么。奥威BI系统的可视化大屏不仅可对接多业务系统数据&#xff0c;更可智能整合、…

力扣-404.左叶子之和

Idea attention&#xff1a;先看清楚题目&#xff0c;题目说的是左叶子结点&#xff0c;不是左结点【泣不成声】 遇到像这种二叉树类型的题目呢&#xff0c;我们一般还是选择dfs&#xff0c;然后类似于前序遍历的方式加上判断条件即可 AC Code class Solution { public:void d…

数据结构与算法-前缀树

数据结构与算法-前缀树详解 1 何为前缀树 2 前缀树的代码表示及相关操作 1 何为前缀树 前缀树 又称之为字典树,是一种多路查找树,多路树形结构,是哈希树的变种&#xff0c;和hash效率有一拼&#xff0c;是一种用于快速检索的多叉树结构。 性质&#xff1a;不同字符串的相同…

Libevent库的介绍以及使用示例

Libevent库的介绍以及使用示例 Chapter1 Libevent库的介绍以及使用示例1、Libevent概述2、Libevent使用模型3、Libevent支持的事件类型4、示例一&#xff1a;简单使用Libevent注册信号事件以及定时事件5、 示例二&#xff1a;Libevent实现TCP服务器 Chapter2 Libevent库的介绍与…

【Java 进阶篇】HTML 图片标签详解

HTML&#xff08;超文本标记语言&#xff09;是构建Web页面的标准语言&#xff0c;它包含了许多标签&#xff0c;用于定义和排列页面内容。在Web开发中&#xff0c;显示图像是非常常见的需求之一&#xff0c;为此HTML提供了<img>标签来插入图像。本文将详细介绍HTML图片标…

TCP相关面试题

TCP相关面试题 题目1 介绍一下TCP三次握手的过程 介绍TCP三次握手应该从3个方面进行回答&#xff0c;分别是数据包名称&#xff0c;客户端与服务端的状态变化&#xff0c;数据包的序号变化。而不能只是简单回答发送的数据包名称。 TCP三次握手的过程如下&#xff1a; 从数据…

雷达散射截面(RCS)相关概念

一、雷达散射截面(RCS) RCS被指定为直径为1.128 m的完美导电球体的倍数。该球体的可见表面为1 m,但仅具有较小的反向散射有效面积。因此,更好的反射表面可以具有比其几何尺寸大得多的RCS。 雷达截面积 二、简单目标的RCS 简单目标的RCS如下表所示: 三、瑞利、米氏和光学…

Springboot——jxls实现同sheet多个列表展示

文章目录 前言制定模板1、限定模板数据的范围2、设定报表展示项 编写测试类1、将xls模板文件放于 resource 下的 doc文件夹中2、导入依赖文件3、编写接口和导出逻辑 效果预览结论 前言 在之前的博客中Springboot——使用jxls实现excel模板导出excel&#xff0c;具体说明了jxls…

11.2SpringBoot

一.简介 1.Spring Boot是Spring的一次飞跃的升级,大大简化了开发. 2.Spring Boot有三大特点,分别是快速添加依赖,内置web容器,自动装配. 二.创建项目 1.创建时打包方式改为maven,jdk版本选择8(和本地环境匹配),SpringBoot版本使用2.*的稳定版(和jdk环境相匹配,如果本地使用…