CC++

    xiaoxiao2021-03-25  71

    /*---------------------------------------------------------------- // @copyright // content:every 23 gives a 'p'; every 28 gives an 'e'; every 33 gives an 'i'; print the time all 3 variables met; // input:输入4个整数p,e,i,d; d是给定的日子,可能小于p,e或i,所 有给定日子是非负的且小于等于365,所求日子小于等于21252; 四个变量都输入'-1'表示输入结束; // output:从'd'起下一次3个高峰同一天的日子的天数(k-d); // author:szetrov //----------------------------------------------------------------*/ /*---------------------version 1.0---------------------------------- // wrong answer :( #include<iostream> using namespace std; int main(){ int p=0,e=0,i=0,d=0; int k=0; int j=1; for(j;;j++){ cin>>p>>e>>i>>d; while(p>-1&& e>-1 && i>-1 && d>-1){ for(k=d+1;k<=21252;k++){ if((k-p)#==0 && (k-e)(==0 && (k-i)3==0) cout<<"case"<<j<<": "<<"the next triple peak occurs in "<<k<<" days."<<endl; break; } } } return 0; } //-----------------------------------------------------------------*/ //---------------------version 2.0---------------------------------- #include<iostream> #define N 21252 using namespace std; int main(){ int p,e,i,d,caseNo=0; int k; while(cin>>p>>e>>i>>d && p!=-1){ ++ caseNo; for(k=d+1;(k-p)#;k++);//k从d+1开始试只要【(k-p)#】!=0,那说明这个k不是我们要的,于是k++; //最终这个for循环结束找到的是【(k-p)#】==0的值,这个k是我们想要的; for(;(k-e)(;k+=23);//接下来在上一个循环的基础上再去找既满足【(k-p)#】==0又满足【(k-e)(】==0的值; for(;(k-i)3;k+=23*28);//接下来在上一个循环的基础上再去找既满足【(k-p)#】==0又满足【(k-e)(】==0还满足【(k-i)3】==0的值; cout<<"case"<<caseNo<<": the next triple peak occurs in "<<k-d<<" days."<<endl; } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-36938.html

    最新回复(0)