#22354: 簡單題


jayw711kb@gmail.com (Jay Huang)

學校 : 國立虎尾科技大學
編號 : 119439
來源 : [27.247.130.217]
最後登入時間 :
2020-09-15 15:55:19
d532. 文文的求婚 (三) -- 板橋高中教學題 | From: [110.28.35.120] | 發表日期 : 2020-08-26 16:47

 

 

解法大全:

1)直接算:

//AC (3ms, 332KB)

片段程式碼:

for(int i=a;i<=b;i++)

{

ans+=leap(i);

}

 

2)數學演算法:

//AC (9ms, 324KB)

類似於種樹概念

先找最大閏年(但不大於輸入)和最小閏年但要記得用額外的迴圈處例外(100的倍數和400的倍數)

 

片段程式碼:

//i為最大閏年

        cin>>a>>b;

        if(a>b)swap(a,b);//防止第一個數字大於第二個數字

   int i;

for(i=b;i>=a;i--)

{

if(leap(i))break;

}

  //代表a,b間沒有閏年

   if(i<a){cout<<ans<<endl;return 0;}

 

//處理例外

int hundred=0,four_hundred=0;

for(int k=j;k<=i;k++)

{

if(k%100==0)hundred++;

if(k%400==0)four_hundred++;

}

ans=ans-hundred+four_hundred;

 

至於閏年的定義和副程式碼可以自己慢慢想

 
ZeroJudge Forum