/
*----------------------------------------------------------------
// @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 :(
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----------------------------------
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