第一種是《演算法筆記》中的解法。
第二種解法的速度比第一種快點,但寫法相對複雜點。
兩種解法都ac了。
//第一種解法
#include
int month[13]
[2]=
,,,,
,,,,
,,,,
};bool
isleap
(int year)
intmain()
y1=time1/
10000
,m1=time1%
10000
/100
,d1=time1%
100;
y2=time2/
10000
,m2=time2%
10000
/100
,d2=time2%
100;
int ans=1;
while
(y1!=y2||m1!=m2||d1!=d2)
if(m1==13)
ans++;}
printf
("%d\n"
,ans);}
return0;
}
//第二種解法
#include
int month[13]
[2]=
,,,,
,,,,
,,,,
};bool
isleap
(int year)
intmain()
y1=time1/
10000
,m1=time1%
10000
/100
,d1=time1%
100;
y2=time2/
10000
,m2=time2%
10000
/100
,d2=time2%
100;
int ans;
int temp1=
0, temp2=1;
int m22=
1, d22=1;
int addyears=0;
if((y2-y1)
>=2)
while
(m1!=13)
temp1++;}
while
(m22temp2++;}
ans=addyears+temp1+temp2;
}else
if(y2==y1+1)
temp1++;}
while
(m22temp2++;}
ans=temp1+temp2;
}else
temp2++;}
ans=temp2;
}printf
("%d\n"
,ans);}
return0;
}
codeup 1928 日期差值
思路 求日期相差天數的話,就讓少的那個一直加一天 加到多的那個天數為止。具體處理 天數d加了一天後超過當前月m應有的天數時,令月份m 1 別忘了置天數為1號。月份m變成13時,令年份y加1 同時設定月份m為1月。閏年和平年的二月份天數不一樣,所以要用二維陣列存一下每個月的天數 設定二維陣列int m...
codeup 1928 日期差值
時間限制 1 sec 記憶體限制 32 mb 獻花 1446 解決 395 獻花 花圈 tk題庫 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 ...
codeup 1928 日期差值
有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 201301055 includebool isleap int year int main 確定...