您的位置:首页 > 其它

输入某年某月某日,判断这一天是这一年的第几天?(哈希算法)

2014-12-08 08:55 351 查看
问题:

输入某年某月某日,判断这一天是这一年的第几天?

代码:

第一种(比较好想的)

#include <iostream>

#include <cstdio>

using namespace std;

int main()

{

int Year, Month, Day;

cout<<"请输入年: 月: 日:"<<endl;

scanf("%d %d %d", &Year, &Month, &Day);

if((Year % 4 == 0 && Year % 100 != 0 && Year %400) || (Year% 400) == 0)

{

switch(Month)

{

case 1:

printf("所输入的日期是这一年的第 : %d 天\n", Day);

break;

case 2:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31);

break;

case 3:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29);

break;

case 4:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31);

break;

case 5:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 30);

break;

case 6:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31 + 31);

break;

case 7:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31 + 30);

break;

case 8:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31 + 30 + 31);

break;

case 9:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31 + 30 + 31 + 31);

break;

case 10:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31 + 30 + 31 + 31 + 30);

break;

case 11:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31 + 30 + 31 + 31 + 30 + 31);

break;

case 12:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 29 + 31 + 30 + 31 + 31 + 30 + 31 + 30);

break;

}

}

else

{

switch(Month)

{

case 1:

printf("所输入的日期是这一年的第 : %d 天\n", Day);

break;

case 2:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31);

break;

case 3:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28);

break;

case 4:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31);

break;

case 5:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 30);

break;

case 6:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31 + 31);

break;

case 7:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31 + 30);

break;

case 8:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31 + 30 + 31);

break;

case 9:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31 + 30 + 31 + 31);

break;

case 10:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31 + 30 + 31 + 31 + 30);

break;

case 11:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31 + 30 + 31 + 31 + 30 + 31);

break;

case 12:

printf("所输入的日期是这一年的第 : %d 天\n", Day + 31 + 28 + 31 + 30 + 31 + 31 + 30 + 31 + 30);

break;

}

}

return 0;

}






第二种哈希算法:



#include <iostream>

#include <cstdio>

using namespace std;

int main()

{

int n, year, month, day, sum, month_day_sum = 0;

int month_day[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

cout<<"请输入年,月, 日:"<<endl;

cin>>year>>month>>day;

if(year % 100 != 0 && year % 4 == 0 || year % 400 == 0)

month_day[2] = 29;

else

{

for(n = 1; n < month; n++)

{

month_day_sum += month_day
;

}

sum = month_day_sum + day;

cout<<sum;

}

getchar();

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: