(枚举)生理周期

人有体力、情商、智商的高峰日子,它们分别每隔
23天、28天和33天出现一次。对于每个人,我们想.
知道何时三个高峰落在同一天。给定三个高峰出现
的日子p,e和i (不一定是第一次高峰出现的日子) ,
再给定另一个指定的日子d,你的任务是输出日子d
之后,下一次三个高峰落在同一天的日子(用距离d
的天数表示)。例如:给定日子为10,下次出现三
个高峰同一天的日子是12,则输出2。

输入

输入四个整数: p,e,i和d。p, e,i分别表示体力、情感和
智力高峰出现的日子。d是给定的日子,可能小于p,e或i。
所有给定日子是非负的并且小于或等于365,所求的日子小于

输出
从给定日子起,下一次三个高峰同一天的日子
的天数)

输入样例

0000

输出样例

21252

题解:

#include<stdio.h>
int main()
{
 int p,e,i,d;
 scanf("%d %d %d %d",&p,&e,&i,&d) ;

while(p>d){

  p-=23;
 }
 int i1,j,k;
 for(i1=p;i1<=21252;i1+=23){
  for(j=e;j<=i1;j+=28){                         //缩小j,k的编译范围,令其小于等于上一个循环数即可
   for(k=i;k<=j;k+=33){
    if(i1==j&&j==k&&i1>d){
     printf("%d",i1-d);
     goto out;
    }
   }
  }
 }
 out:
 return 0;
}

猜你喜欢

转载自www.cnblogs.com/lijiahui-123/p/12231900.html
今日推荐