POJ 1006 Biorhythms

原创 2012年03月25日 22:32:02

题目:在人的生命中有三种周期:体能、情绪、智商,每种周期的周期长度分别为23,28,33,每种周期都有一天是峰顶,在相应周期的峰顶,人会在相应方面表现得最好。由于三个周期长度不同,所以三个周期的峰顶一般不在同一天。给定一个日期,我们的任务是要找出一天,这一天在三个周期中都是峰顶,称为triple peak,得到这一天到距离给定日期的天数。

输入:每一行输入一种情况,每行四个数,分别代表体能、情绪、智商三个周期的峰顶(不一定是第一个峰顶),第4个数代表给定日期。输入以 -1 -1 -1 -1结束。

输出:对每种情况,输出triple peak距离给定日期的天数,如果triple peak和给定日期是同一天,则输出下一个triple peak距离给定日期的天数。

解题思路:

1 对三个周期,分别找出一个数,这个数是另外两个周期长度的倍数,但对本周期长度取模为1。三个周期和对应的数如下:

    23   ---    5544

    28   ---  14421

    33   ---    1288

2 对每次输入,用p,e,i,d表示三种周期的峰顶和给定日期,则

   triple peak=p*5544+e*14421+i*1288

3 由于23、28、33的公倍数为21252,则triple peak对21252取模仍为一个triple peak,所以

   triple peak=(p*5544+e*14421+i*1288)%21252.

4 题目要求的是triple peak距离给定日期的天数,所以triple peak必须大于d,如果triple peak小于等于d,则加一个周期公倍数21252


代码:


#include<stdio.h>

int main()
{
	int p,e,i,d,peak,count=1;
	scanf("%d%d%d%d",&p,&e,&i,&d);
	while(p!=-1 && e!=-1 && i!=-1 && d!=-1)
	{
		p %= 23;
	        e %= 28;
		i %= 33;
		if(p==e && p==i && e==i)
		{
			peak = p;
		}
		else
		{
			peak = (p*5544 + e*14421 + i*1288)%21252;
		}
    	        if(peak <= d) peak += 21252;
		peak = peak -d;
		printf("Case %d: the next triple peak occurs in %d days.\n",count++,peak);
		scanf("%d%d%d%d",&p,&e,&i,&d);
	}
	return 0;
}




poj 1006 与 中国剩余定理

poj 1006 题的思路不是很难的,可以转化数学式: 现设 num 是下一个相同日子距离开始的天数          p,e,i,d 如题中所设! 那么就可以得到三个式子:( num + d ...
  • shanshanpt
  • shanshanpt
  • 2013年03月27日 09:46
  • 8351

POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)

水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一、基本算法:        (1)枚举 (1753,2965)  ...
  • dg357442101
  • dg357442101
  • 2016年03月13日 14:24
  • 3472

poj1006 生理周期(中国剩余定理)

生理周期 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 122157   Accepted: 38518 ...
  • d_x_d
  • d_x_d
  • 2015年09月15日 14:37
  • 1608

POJ1006-Biorhythms【中国剩余定理】

  • 2011年07月31日 23:12
  • 7KB
  • 下载

POJ 题目1006 Biorhythms(中国剩余定理)

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 116784   A...
  • yu_ch_sh
  • yu_ch_sh
  • 2015年01月27日 20:29
  • 323

POJ-1006 Biorhythms 【中国剩余定理模板】

C - Biorhythms Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%lld & %llu Submit Status ...
  • DTL66
  • DTL66
  • 2016年08月21日 22:02
  • 177

POJ 1006-Biorhythms-生理周期峰值(中国剩余问题)

问题及代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:HDU.cpp *作 者:单昕昕 ...
  • MIKASA3
  • MIKASA3
  • 2015年01月27日 21:58
  • 598

POJ1006 Biorhythms(生理周期,中国剩余定理详述)

Description   人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的...
  • SimonCoder
  • SimonCoder
  • 2015年11月16日 08:56
  • 1142

POJ 1006 Biorhythms(中国剩余定理 模板)

POJ 1006 Biorhythms(中国剩余定理 模板)
  • u012860063
  • u012860063
  • 2015年10月03日 20:51
  • 464

POJ 1006 Biorhythms(中国剩余定理,同余方程)

Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 132867   Accepted: 424...
  • Tsaryu
  • Tsaryu
  • 2017年01月16日 18:58
  • 134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1006 Biorhythms
举报原因:
原因补充:

(最多只允许输入30个字)