poj 1006

来源:互联网 发布:淘宝回收电话卡 编辑:程序博客网 时间:2024/04/29 23:34

这道题被坑死了,寒假的时候做过,现在拿过来在做还是错了很久

题意分析:人有三个值分别是体力,情绪,智力。这三个值会定期的达到高峰,周期分别是23天,28天,33天。现在给你四个数据前三个代表这三个值,d是一个天数值,问下一次这三个值同时达到高峰的那天距离d有多少天

#include <stdio.h>int main(int argc, char *argv[]){int p,e,i,d;int cas=1;int t,k;while(scanf("%d%d%d%d",&p,&e,&i,&d)){if(p+e+i+d==-4) break;t=d;p%=23;//找到该年最小的达到高峰的天数 e%=28;i%=33;for (d=d+1;;d++)    if (d%23==p) break;//这里也是错点,不是等于0      while(1){//当该天同时是这三个高峰天的倍数    if(d%23==p && d%28==e && d%33==i)//不是等于0,0并不一定高峰,取余=最小高峰天数    {   //d+=23;原先就是在这里加24 29 34 0输出1过不了的,他直接跳过1了  printf("Case %d: the next triple peak occurs in %d days.\n",cas++,d-t);            break;   }    d+=23;}}return 0;}


 

原创粉丝点击