• 生理周期 (枚举)


    生理周期 
     输入 
      输入四个整数:p, e, i和d。 p, e, i分别表示体力、情感和
    智力高峰出现的日子。d是给定的日子,可能小于p, e或 i。
    所有给定日子是非负的并且小于或等于365,所求的日子小于
    或等于21252。 
     
     输出 
      从给定日子起,下一次三个高峰同一天的日子(距离给定日子
    的天数)。 

     

     输入样例 
    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. 

    简单的枚举,但是里面跳着试的思想真的是一个不错的思想!!!

    问题相同,所用的思想却不同。

    #include <iostream> 
    #include <cstdio> 
    using namespace std; 
    #define N  21252 
    int main(){ 
      int p,e,i,d,caseNo = 0; 
      while(  cin >> p >> e >>i >>d && p!= -1) { 
        ++ caseNo; 
        int k; 
        for(k = d+1; (k-p)%23; ++k); //如果(k-p)%23不为0,继续下一步
        for(; (k-e)%28; k+= 23); //跳过23个确保是23的倍数
        for(; (k-i)%33; k+= 23*28); //跳过23*28个,在此基础上查找直到出现三个数公共的倍数
        cout << "Case " << caseNo <<  
        ": the next triple peak occurs in " << k-d << " days." << endl; 
      }    
      return 0;           
    }
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    计数和查找
    遍历
    top小火箭
    leetcode 字符串中的第一个唯一字符
    leetcode 颠倒整数
    leetcode 反转字符串
    leetcode 有效的数独
    leetcode 两数之和
    leetcode 移动零
    leetcode 加一
  • 原文地址:https://www.cnblogs.com/h-hkai/p/7416664.html
Copyright © 2020-2023  润新知