<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 【程序設計】日期合法性 你已經和小渡一起看清了很多程序語言中的“是非”,這下,你又需要在沒有任何小渡的幫助下完成一個任務啦。 這次的題目也不是很難。測試程序將隨機給你一個格式為`-`連接了年、月、日的日期字符串(其中的數字都是沒有前導零的,也就是說`7`不會被寫成`07`)。你將需要判斷這個日期在我們的公歷體系內是否真實存在。如果存在則輸出`YES`,否則輸出`NO`。 測試程序給出的測試輸入數據中,年、月、日都是正整數(也就是大于零的整數),均不大于 5000。 已知,一年有 1 月~ 12 月,共 12個不同的月份;其中 1月、3 月、5月、7 月、8 月、101月、12 月有 31 個合法的日,分別為 1 日~ 31 日;4 月、6 月、9 月、11 月有 30 個合法的日,分別為 1 日~ 30 日。對于閏年,2 月有 29 個合法的日,分別為 1 日~ 29 日;對于平年(不是閏年的年稱為平年),2 月有 28 個合法的日,分別為 1 日~ 28日。 閏年的判斷則遵循如下依據: * 非整百年,能被4整除的為閏年。 * 整百年,能被400整除的是閏年。 #### 樣例輸入 ~~~ 2016-2-29 ~~~ #### 樣例輸出 ~~~ YES ~~~ ***** 提示: 要想做好這道題,你需要先思考一下,如何使用`cin`去接收一個指定了格式的字符串中的量(在這里就是`-`前后的正整數)。給你一個小貼士——有的時候對于某些變量,我們可以只對其進行接收,而并不需要實際處理它哦! 當然,如果你實在想不出怎么使用`cin`來處理這個輸入的話,你也可以放棄`cin`,使用 C 風格的`scanf`函數——這里你可以自行上網搜索,也可以直接參閱這門課程的最后一章《歷史的行程——C++ 的過去和未來》中的第一節《C 風格的格式輸入輸出函數》。相信在做過這個題之后,你會對 C++ 的特點有更進一步的認識。 之后呢,你需要做很多的判斷,會用到我們已經學過的 `if... else...` 的嵌套結構。你將需要: * 判斷一下輸入的年是不是閏年; * 知道年份是不是閏年后,你還需要判斷月份數字的合法性,是否月份數字不是一個合法的月份值; * 知道月份后,你還要判斷日的合法性(特別要注意,對于 222 月的日子數在閏年和平年的不同)。 如果你怕自己邏輯混亂,畫一畫具體的邏輯將很有幫助喔! \*\*小貼士:\*\*對于 1 < x < 3 這樣的情況判斷一定要寫成`1 < x && x < 3`喔。 ***** ``` #include<bits/stdc++.h> using namespace std; int main(){ int year,month,day; scanf("%d-%d-%d",&year,&month,&day); if((year%4==0&&year%100!=0)||year%400==0){ if(month==2){ if(day>=1&&day<=29){ cout<<"YES"; }else{ cout<<"NO"; } }else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){ if(day>=1&&day<=31){ cout<<"YES"; }else{ cout<<"NO"; } }else if(month==4||month==6||month==9||month==11){ if(day>=1&&day<=30){ cout<<"YES"; }else{ cout<<"NO"; } }else{ cout<<"NO"; } }else{ if(month==2){ if(day>=1&&day<=28){ cout<<"YES"; }else{ cout<<"NO"; } }else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){ if(day>=1&&day<=31){ cout<<"YES"; }else{ cout<<"NO"; } }else if(month==4||month==6||month==9||month==11){ if(day>=1&&day<=30){ cout<<"YES"; }else{ cout<<"NO"; } }else{ cout<<"NO"; } } } ``` ``` #include<iostream> using std::cin; using std::cout; using std::endl; int f[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; bool is_leap(int y){ return y%400==0||(y%4==0&&y%100); } int main(){ int y,m,d; char op; cin>>y>>op>>m>>op>>d; if(m==2){ f[m]+=is_leap(y); } if(m>=1&&m<=12&&d>0&&d<=f[m]){ cout<<"YES"<<endl; } else{ cout<<"NO"<<endl; } return 0; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看