问题描述:
中国有句俗语叫 “ 三天打渔两天晒网 ”。某人从 1990 年 1 月 1 日起开始 “三天打鱼两天晒网”,问这个人在以后的某一天中是 “打鱼” 还是 “晒网”。
设计思路:
- 定义两个数组分别存入闰年和平年的月份。
- 首先1990年到输入年份每一年的天数相加(闰年多加一天),之后输入年份的月份相加(闰年2月29天),最后加年份。
- 将总天数除以5,余数为1、2、3时是打渔,0、4时是晒网。
流程图:
代码实现:
#include <iostream>
using namespace std;
int run[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 };
int ping[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 };
int main()
{
int y, m, d;
cin >> y >> m >> d;
int sum = d;
for (int i = 1990; i <= y; i++)
{
if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
sum += 366;
else
sum += 365;
}
for (int i = 1; i <= m; i++)
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))
sum += run[i];
else
sum += ping[i];
if (sum % 5 <= 3 && sum % 5 > 0)
cout << "打鱼";
else
cout << "晒网";
}
标签:晒网,int,31,30,29,打渔,sum,流程图 From: https://www.cnblogs.com/wang111215/p/17334514.html