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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenJ_Bailian - 2977 生理周期 【枚举】

發布時間:2023/12/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenJ_Bailian - 2977 生理周期 【枚举】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:https://cn.vjudge.net/problem/OpenJ_Bailian-2977

題目描述:

人生來就有三個生理周期,分別為體力、感情和智力周期,它們的周期長度為23天、28天和33天。每一個周期中有一天是高峰。在高峰這天,人會在相應的方面表現出色。例如,智力周期的高峰,人會思維敏捷,精力容易高度集中。因為三個周期的周長不同,所以通常三個周期的高峰不會落在同一天。對于每個人,我們想知道何時三個高峰落在同一天。對于每個周期,我們會給出從當前年份的第一天開始,到出現高峰的天數(不一定是第一次高峰出現的時間)。你的任務是給定一個從當年第一天開始數的天數,輸出從給定時間開始(不包括給定時間)下一次三個高峰落在同一天的時間(距給定時間的天數)。例如:給定時間為10,下次出現三個高峰同天的時間是12,則輸出2(注意這里不是3)。

Input

一行,包含四個整數:p, e, i和d,相鄰兩個整數之間用單個空格隔開。 p, e, i分別表示體力、情感和智力高峰出現的時間(時間從當年的第一天開始計算)。d 是給定的時間,可能小于p, e, 或 i。 所有給定時間是非負的并且小于等于365, 所求的時間小于等于21252。

Output

一個整數,即從給定時間起,下一次三個高峰同天的時間(距離給定時間的天數)。

Sample Input

4 5 6 7

Sample Output

16994

AC代碼:?

#include <iostream> #include <cmath> using namespace std; int MAX_Common_Diversor(int t1,int t2) {int c;while( t2!=0) {c = t1%t2;t1 = t2;t2 = c;}return t1; } int MIN_Common_Multiple(int t1,int t2) {return (t1*t2)/MAX_Common_Diversor(t1,t2); } int main() {int p,e,i,d;cin >> p >> e >> i >> d; /*for(int k=d+1;1;k++) {if(abs(k-p)%23==0 && abs(k-e)%28==0 && abs(k-i)%33==0) {cout << k-d;break;}} */// 優化: 很多日期是沒有必要驗證的 // 先找到體力(感情/智力)的第一次出現日期,那么從這個日期開始體力高峰期以后的出現日期必和這天差 23的整數倍 天; // 所以增量改為23,再找以23為增量的感情第一次出現的日期 , // 則以后體力和感情高峰期共同出現的日期與改天必差 最小公倍數(23,28)*整數 天; // 最后再以 最小公倍數(23,28)找三者共同出現的日期; int k;for(k=d+1;(k-p)%23;k++) ; for( ;(k-e)%28;k+=23);int Add = MIN_Common_Multiple(23,28); for( ;(k-i)%33;k+=Add);cout << k-d;return 0; } // 體力 感情 智力 // 23 28 33

?

總結

以上是生活随笔為你收集整理的OpenJ_Bailian - 2977 生理周期 【枚举】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。