生物节律

2023-05-16

1084:生物节律 分数:2

时间限制:1 秒
内存限制:32 兆
特殊判题:


标签

  • 数学题

题目描述

有些人相信,人从出生开始就有三个生物周期。这三个生物周期分别是体力,情绪和智力,周期分别为23,28和33天。在每个周期里都有一个高潮。在一个周期中高潮的时候,人们在相应的方面(体力,情绪和智力)达到最佳状态。例如,如果是心理曲线达到高潮,思考将变得睿智,注意力更容易集中。
由于这三个生物周期都不同,所以它们产生高潮的时间都是不同的。我们想要确定一个人什么时候这三个高潮将会同时发生(这三个高潮产生在同一天)。已知每个生物周期上次高潮产生时距离年初的天数(不一定是第一次产生),以及从年初开始的一个天数(起始时间)。你的任务是求出下次三个生物周期高潮同时产生时,距离起始时间的天数,不包括起始时间那天。
例如,起始时间的天数是10,而下次三个生物周期高潮同时产生的时间为12,则答案是2,而不是3。如果三个生物周期高潮同时产生时就在起始时间那天,你要计算出下一次三个生物周期高潮同时产生的天数。

输入格式

输入包含多组测试数据。每组输入四个整数p,e,i和d。数值p,e和i分别表示体力,情绪和智力达到高峰时距离年初的天数。数值d是给定的日期,也许小于p,e或i。所有数值都是非负的,小于等于365。你可以假定三个生物周期高潮同时产生时,距离起始时间的天数在21252天之内。
当p=e=i=d=-1时,输入结束。

输出

对于每组输入,输出测试例编号,接着是下次三个生物周期高潮同时产生的时间,格式如下:
Case 1: the next triple peak occurs in 1234 days.
即使答案只有一天,也用复数形式“days”表示。

样例输入

0 0 0 0
0 0 0 100
5 20 34 325
4 5 6 7
283 102 23 320
203 301 203 40
-1 -1 -1 -1

样例输出

Case 1: the next triple peak occurs in 21252 days.
Case 2: the next triple peak occurs in 21152 days.
Case 3: the next triple peak occurs in 19575 days.
Case 4: the next triple peak occurs in 16994 days.
Case 5: the next triple peak occurs in 8910 days.
Case 6: the next triple peak occurs in 10789 days.

【分析】

       做这道题的时候让我想到了此前所提到的一道简单的数学编程题“鸡兔同笼”。同样地,我们可以考虑体力生物周期经过了 x 个周期,情绪生物周期经过了 y 个周期,智力生物周期经过了 z 个周期。为了使三个生物周期同时到达高潮,不同的生物周期要经过不同的周期数。我们先不考虑给定的日期 d,那么对于体力生物周期而言,已知它到达高潮时距离年初的天数 p,则经过 x 个周期后达到高潮时距离年初的天数为 p + x * 23。(23为体力生物周期的周期)类似地,情绪生物周期经过 y 个周期后达到高潮时距离年初的天数为 e + y * 28。(28为情绪生物周期的周期);智力生物周期经过 z 个周期后达到高潮时距离年初的天数为 i + z * 33。(33为智力生物周期的周期)

       可想而知,想让三个生物周期同时达到高潮,那么只要使得三者各自到达高潮时距离年初的天数相等即可,即 p + x * 23 = e + y * 28 = i + z * 33。则 y = (p + x * 23 - e) / 28,z = (p + x * 23 - i) / 33。现在我们所要求的是当 x 为何值时,(p + x * 23 - e) 能被28整除且(p + x * 23 - i) 能被33整除,此时的 y 和 z 才在真正意义上存在。我们可以通过穷举 x = 0,1,2,......当条件成立时,说明此时 p + x * 23 就是距离最近将同时达到高潮时距离年初的天数。

       现在,我们再来考虑这个给定的日期 d,我们只要保证 x 满足条件后同时要 p + x * 23 > d(否则继续穷举求 x 的值)即可,也就是说保证达到高潮的时间是在给定日期之后。

       从中我们可以发现像“鸡兔同笼”、“生物节律"这样的数学编程题,都用到了运用未知数创建方程,再利用代入法,用其中一个未知数来表示其他未知数,这样我们所要考虑的范围将大大减少。(在此,也是为了提醒我自己,以后这样的数学题,大多用的是数学思想,即用数学知识就可解答问题,只是我们要在这样的数学架构下编程而已。)

用java语言编写程序,代码如下:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int caseNum = 0;
		while(input.hasNext()) {
			int p = input.nextInt();
			int e = input.nextInt();
			int i = input.nextInt();
			int d = input.nextInt();
			
			if(p == -1 && e == -1 && i == -1 && d == -1)
				break;
			
			int temp = 0;
			for(int x = 0;;x++) {
				temp = p + 23 * x;
				if((temp - e) % 28 == 0 && (temp - i) % 33 == 0 && temp > d) {
					System.out.println("Case " + ++caseNum +": the next triple peak occurs in " 
							+ (temp - d) + " days.");
					break;
				}
			}
		}
	}
}



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生物节律 的相关文章

  • Method setName() is never used 且字体为灰色解决方案(详细步骤)

    目录 1 问题展示2 解决步骤第1步 settings 第2步 inspections 61 gt Java第3步 Declaration redundancy第4步 取消对Unused declaration的勾选第5步 apply 3
  • 雄关漫道真如铁|MAC安装Maven并配置环境变量

    MAC安装Maven并配置环境变量 0 安装方式说明1 下载2 安装操作3 基本配置3 1 环境变量3 2 自定义本地仓库3 3 配置阿里云镜像 4 解决mvn v不生效的问题5 然后mvn v就随处可执行了6 然后大功告成 xff01 x
  • 而今迈步从头越|nacos逼我在mac上重新安装java8与环境变量的配置

    nacos逼我迈步从头越 1 写作背景 nacos逼得我重装java 2 java下载 安装 验证3 环境变量的配置3 1 通过指令获取java的安装路径3 2 在配置文件中完善java的路径 xff08 配置环境变量 xff09 3 2
  • 文章本天成|跟我一起来一场简洁易懂的servlet的过滤器Filter的学习吧

    filter的前身今生 0 fiter是什么1 filter有啥用2 filter在哪里3 filter做了啥4 filter代码实现4 1 依赖包4 2 代码4 2 1 MyFirstfilter java4 2 2 MySecondFi
  • 【本文将经常更新】代码评审中的哲学|一起来看看我们进行java代码评审后提出来的意见吧

    Java代码评审中提炼出来的开发规范 1 20220810代码评审总结2 后续代码评审将继续更新 1 20220810代码评审总结 不要出现常量的硬编码 xff1a 请写枚举enum或者静态常量 每个方法必须加注释 xxx toJSONSt
  • 记一次关于如何做好系统的操作日志记录解决方案的探索

    操作记录的3种实现方式 零 导语一 简单粗暴式操作记录二 面向切面编程AOP三 消息中间件MQ四 篇后语 零 导语 操作记录对于一个系统来说重要性不言而喻 xff0c 轻则供系统用户简单查看历史操作信息 xff0c 重则能用来排查系统故障原
  • IDEA:Warning: No artifacts marked for deployment

    与此问题关联的文章 xff0c 如有需要请查看 IDEA xff1a Warning No artifacts configured FIX Warning No artifacts marked for deployment 没有标记为部
  • VC++6.0运行结果界面闪退问题解决方案

    目录 方案一 xff1a 使用 include xff0b system 34 pause 34 方案二 xff1a 加getchar 语句 这类问题之前也遇到过 xff0c 今天总结一下目前可行的解决方案 xff0c 解决方案都是我自己试
  • 浅谈 前缀编码与哈夫曼编码

    目录 关于编码的两个概念 xff1a 1 前缀编码 1 1 前缀编码概念 1 2 前缀编码实例分析 xff08 简洁易懂 xff09 1 3 前缀编码作用 2 哈夫曼编码 2 1 哈夫曼编码概念 2 2 哈夫曼编码的两条性质 2 3 哈夫曼
  • Visual Studio2022创建setup项目

    Visual Studio2022创建setup项目 安装Setup Project方法 xff1a Visual Studio2022 gt 工具 gt 获取工具和功能 T gt 单个组件 xff0c 搜索 Microsoft Visua
  • OpenCV学习笔记二

    图像操作 获取像素值 xff1a 单通道 gray src span class token punctuation span at span class token operator lt span uchar span class to
  • OpenCV学习笔记三

    形态学操作应用 腐蚀 xff1a 跟卷积操作类似 xff0c 结构元素B在图像A上面移动 xff0c B定义其中心为锚点 xff0c 计算B覆盖下A的uida像素值用来替换锚点的像素 膨胀 xff1a 与膨胀过程类似 xff0c 不同的是以
  • OpenCV学习笔记四

    金字塔概念 xff1a 一个图像金字塔是一系列的图像组成 xff0c 最底下一张是图像尺寸最大 xff0c 最上方是图像尺寸最小 高斯金字塔 用来队图像进行降采样从底向上 xff0c 逐层采样得到 xff1b 降采样之后图像大小是原图像MN
  • Android修改SharePreference路径

    ContextImpl里面有一个字段mPreferencesDir xff0c 这个文件目录就是保存了SharePreference路径的 xff0c 只需要修改这个为我们自定义的路径就好了 xff0c 由于ContextImpl是一个隐藏
  • 安卓setContentView

    首先进入activity中找到setContentView方法 xff1a public void setContentView 64 LayoutRes int layoutResID getWindow setContentView l
  • 安卓9.0沉浸式状态栏

    首先我们来了解一下几个设置沉浸式状态栏的基础属性 xff1a 1 View SYSTEM UI FLAG LOW PROFILE xff1a 低调模式 会隐藏不重要的状态栏图标 xff1b 2 View SYSTEM UI FLAG HID
  • 安卓Service生命周期

    官方说明图 startService xff1a 开启一个Service且Service生命周期只与自身有关 xff0c 当调用stopService或者stopSelf时停止 如果多次调用startService xff0c 只有第一次会
  • 阿里2014年校园题目最后一题答案及证明

    该题目来自cdsn的一位网友 xff08 可见http blog csdn net thebestdavid article details 11975809 xff09 xff0c 具体内容如下 xff1a 在黑板上写下50个数字 xff
  • 编程——两种list的翻转方法

    对于题目相信大家都比较熟悉了 xff0c 下面就直接上代码了 xff0c 其中没有给出list的creat函数 xff0c 有兴趣的同学可以自己实现 1 模板node的定义 template lt class T gt class TNod
  • 数组旋转新方法

    题目 xff1a 对一个int数组进行左右任意长度的旋转 xff0c 如 xff1a 原始数组为 1 2 3 4 5 xff0c 左旋两位 xff08 可用 2表示 xff09 得 3 4 5 1 2 xff0c 右旋两位 xff08 可用

随机推荐

  • 常见Linux shell脚本中的“-e -d -f -eq -ne -gt -ge”操作符的含义

    常见shell脚本中的 e d f eq ne gt ge 操作符的含义 xff1a 文件表达式 e filename xff1a 如果filename存在 xff0c 则为真 d filename xff1a 如果filename为目录
  • 基于注解的spring源码解析之总体流程

    基于注解的spring源码解析1 总体流程 总体流程图 Demo代码 span class token keyword public span span class token keyword class span span class t
  • Android ViewBinding 替换 findViewById 的神器

    ViewBinding中文官网 ViewBinding 的出现就是为了替代 findViewById 的 以前我们写完布局后就要在代码中使用 findViewById 方法找到 xml 文件中对应的 view xff0c 这样耗时费力 xf
  • 套接字选项(SO_RCVBUF和SO_SNDBUF)

    有时候我们需要控制套接字的行为 如修改缓冲区的大小 这个时候我们就要学习套接字选项 int getsockopt int sockfd int level int optname void optval socklen t optlen i
  • 欢迎使用CSDN-markdown编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • 工作一年,辞职复习半年,考杭电计算机的经验分享

    工作一年 xff0c 辞职复习半年 xff0c 考杭电计算机的经验分享 如果 xff0c 毕业了工作顺利的人大概率是不会去考研的 xff0c 去考研的人 xff0c 大概率是想改变的 题记 2019 4 6 关于我 纠结的人生 为什么考研
  • ICPR-2018-OCR笔记

    2018年第24届国际模式识别大会International Conference on Pattern Recognition ICPR 在北京国家会议中心召开 xff0c 会议从8月20日到24日持续1周时间 有阿里的读光平台的介绍 x
  • centos7 firewalld导致docker网络异常

    centos7 自带防火墙是firewalld 在某下情况下可能导致docker 的某些网络问题 docker 有4种网络模式 xff1a 1 bridge模式 xff08 默认 xff09 xff1a 网桥模式 xff0c 通过虚拟网桥使
  • Linux(centOS)安装yum

    查看是否有安装yum rpm qa grep yum 红框内代表已安装的 xff0c 如果为空代表未安装yum 删除yum下的所有组件 rpm qa grep yum xargs rpm e nodeps 查看原有的yum配置 xff0c
  • Java实现-删除数字

    给出一个字符串 A 表示一个 n 位正整数 删除其中 k 位数字 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数 找到删除 k 个数字之后的最小正整数 N lt 61 240 k lt 61 N 您在真实的面试中是否遇到过这个题 x
  • CentOS7, CentOS8 firewalld docker 端口映射问题,firewall开放端口后,还是不能访问,解决方案

    启动sqlserver容器 docker run d restart 61 always e 34 ACCEPT EULA 61 Y 34 e 34 SA PASSWORD 61 Abc12345 34 p 1433 1433 name s
  • firewalld 命令大全

    1 firewalld的基本使用 启动 xff1a systemctl start firewalld 查看状态 xff1a systemctl status firewalld 停止 xff1a systemctl disable fir
  • vscode通过文件名查找文件的方法

    vscode通过文件名查找文件的方法 这篇文章给大家分享的是有关vscode通过文件名查找文件的方法的内容 小编觉得挺实用的 xff0c 因此分享给大家做个参考 一起跟随小编过来看看吧 按快捷键ctrl 43 p可以弹出一个小窗 xff0c
  • HTML几种设置水平居中和垂直居中的方式

    水平居中 1 平居中设置 定宽块状元素 当被设置元素为 块状元素 时用 text align xff1a center 就不起作用了 xff0c 这时也分两种情况 xff1a 定宽块状元素和不定宽块状元素 这一小节我们先来讲一讲定宽块状元素
  • 【Django网络安全】如何正确设置跨域

    原文作者 xff1a 我辈李想 版权声明 xff1a 文章原创 xff0c 转载时请务必加上原文超链接 作者信息和本声明 Django网络安全 Django网络安全 如何正确设置跨域 Django网络安全 如何正确防护CSRF跨站点请求伪造
  • 我怎么能只懂得使用Redis呢?(一)

    前言 最近在回顾 amp 学习Redis相关的知识 xff0c 也是本着分享的态度和知识点的记录在这里写下相关的文章 希望能帮助各位读者学习或者回顾到Redis相关的知识 xff0c 当然 xff0c 本人才疏学浅 xff0c 在学习和写作
  • 统计回文子串

    1054 统计回文子串 分数 2 时间限制 xff1a 1 秒 内存限制 xff1a 32 兆 特殊判题 xff1a 否 标签 字符串处理回文串 题目描述 现在给你一个字符串S xff0c 请你计算S中有多少连续子串是回文串 输入格式 输入
  • 小明养猪的故事

    1064 小明养猪的故事 分数 1 时间限制 xff1a 1 秒 内存限制 xff1a 32 兆 特殊判题 xff1a 否 标签 递推 题目描述 话说现在猪肉价格这么贵 xff0c 小明也开始了养猪生活 说来也奇怪 xff0c 他养的猪一出
  • 找新朋友

    1079 找新朋友 分数 1 时间限制 xff1a 1 秒 内存限制 xff1a 32 兆 特殊判题 xff1a 否 标签 简单数学题公约数 题目描述 新年快到了 xff0c 天勤准备搞一个聚会 xff0c 已经知道现有会员N人 xff0c
  • 生物节律

    1084 生物节律 分数 2 时间限制 xff1a 1 秒 内存限制 xff1a 32 兆 特殊判题 xff1a 否 标签 数学题 题目描述 有些人相信 xff0c 人从出生开始就有三个生物周期 这三个生物周期分别是体力 xff0c 情绪和