日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

百练4148:生理周期

發(fā)布時(shí)間:2024/4/30 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百练4148:生理周期 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

人有體力、情商、智商的高峰日子,它們分別每隔23天、28天和33天出現(xiàn)一次。
對(duì)于每個(gè)人,我們想知道何時(shí)三個(gè)高峰落在同一天。
給定三個(gè)高峰出現(xiàn)的日子p,e和i(不一定是第一次高峰出現(xiàn)的日子), 再給定另一個(gè)指定的日子d,
你的任務(wù)是輸出日子d 之后,下一次三個(gè)高峰落在同一天的日子(用距離d 的天數(shù)表示)。
例如:給定日子為10,下次出現(xiàn)三個(gè)高峰同一天的日子是12,則輸出2。

輸入

輸入四個(gè)整數(shù):p, e, i和d。p, e, i分別表示體力、情感和智力高峰出現(xiàn)的日子。
d是給定的日子,可能小于p, e或 i。
所有給定日子是非負(fù)的并且小于或等于365,所求的日子小于或等于21252。

輸出

從給定日子起,下一次三個(gè)高峰同一天的日子(距離給定日子的天數(shù))。

輸入樣例

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.

思路

暴力枚舉
從d+1天開始,一直試到第21252 天,對(duì)其中每個(gè)日期k,看是否滿足
(k – p)%23 = = 0 && (k – e)%28 = = 0 && (k-i)%33 = = 0
如何試得更快?
跳著試!

代碼

其實(shí)這題可以無(wú)腦直接暴力:

for(k=d+1;k<=21252;k++){if((k-p)%23==0&&(k-e)%28==0&&(k-i)%33==0)printf("Case %d: the next triple peak occurs in %d days.\n",c,k-d);}

但這樣就太沒有技術(shù)含量了:

#include <cstdio> #include <iostream> using namespace std; int main () {int p,e,i,d,c=0;while(cin>>p>>e>>i>>d&&p!=-1){c++;int k;for(k=d+1;(k-p)%23;k++);for(;(k-e)%28;k+=23);for(;(k-i)%33;k+=23*28);printf("Case %d: the next triple peak occurs in %d days.\n",c,k-d);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的百练4148:生理周期的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。