打渔还是晒网流程图及代码

问题描述:

中国有句俗语叫 “ 三天打渔两天晒网 ”。某人从 1990 年 1 月 1 日起开始 “三天打鱼两天晒网”,问这个人在以后的某一天中是 “打鱼” 还是 “晒网”。

设计思路:

  1. 定义两个数组分别存入闰年和平年的月份。
  2. 首先1990年到输入年份每一年的天数相加(闰年多加一天),之后输入年份的月份相加(闰年2月29天),最后加年份。
  3. 将总天数除以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 << "晒网";

}

 

posted @   NEETV  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示