ccf150902-日付計算

タイトル

問題の説明 
  年と整数y dを考えると、今年のこの最初の日が月の日である尋ねるdは?
  注うるう年2月29日を持っています。次の条件のいずれかが、閏年で満たす:
  1 )年、100の整数倍4の整数倍である、ではない;
  2 )400年の整数倍です。
入力フォーマット 
  入力の最初の行の整数yを含む、年間1900から2015の間で(1900および2015を含む)年を表します。
  入力の2行目は整数d、1から365までの間にDを含んでいます。出力フォーマット 
  出力2系統、答えの整数、それぞれ、月と日付。サンプル入力


 2015年
80 
の出力例
。3 
21は、
サンプル入力
 2000 
40 
サンプル出力
 2 
。9

考え

この問題は、古典的なタイトルにC ++の紹介をすべきであり、第1判定うるう年はうるう年で、その後、うまく引くことによって、その後の年の各月の配列を、構築します。

問題の解決策

書式#include <iostreamの>
 使用して 名前空間はstdを、

int型 isRun(INT年){ // 是闰年返回1 
    場合(年%4 == 0 &&年%100 =!0 ){
         返す 1 ; 
    } 
    場合(年%400 == 0 ){
         返す 1 
    } 
    戻り 0 
} 

int型のmain(){
     int型 monthP [] = { 312831303130313130313031 }。
    INT monthR [] = { 312931303130313130313031 }。
    int型の年。
    int型の日。
    scanf関数(" %d個の%d個"、&年間、&日)。
    int型の月=1 ;
    もし(isRun(年)== 1 ){
         ためint型 i = 0 ; iは< 12 ; iは++ ){
             場合(日monthR [I]> 0 ){  ++  =日- monthR [i]は、    
            } 
            {
                 破ります
            } 
        } 
    }         

    場合(isRun(年)が== 0 ){
         ためint型 i = 0 ; iは< 12;私は++ ){
             場合(日monthP [i]が> 0 ){  ++  =日- monthP [i]は、    
            } 
            {
                 破ります
            } 
        }             
    }     
    のprintf(" %d個の\ n " 、月)。
    printf(" %d個の\ nを" 、日)。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/lyeeer/p/11504781.html