打渔晒网问题(难度:1颗星)
来源:互联网 发布:中教数据库 评职称 编辑:程序博客网 时间:2024/05/18 15:04
问题描述:
如果1个渔夫从2011年1月1日开始每3天打一次渔,两天晒一次网,编程实现当输入2011年1月1日之后的任意1天,输出该渔夫是在打渔还是在晒网。
输入样例
2011 5 5
输出样例
晒网
参考代码:
#include <stdio.h>int arr[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int IsLeapYear(int year){ return ((year % 4 == 0) && (year % 100)) || (year % 400 == 0);}int GetPassedMonthDays(int year, int month, int day){//计算因为月份相差的天数 int sum = day; for (int i = 1; i < month; i++) sum += arr[i]; if (month > 2 && IsLeapYear(year)) sum += 1; return sum;}int GetDiffYearDays(int year1, int year2){//计算因为年份,相差的天数 int sum = (year2 - year1) * 365; for (int i = year1; i < year2; i++) { if (IsLeapYear(i)) sum += 1; } return sum;}int main(){ int year1, month1, day1, nDayDiff; printf("请输入日期的年月日,用空格隔开\n"); scanf_s("%d%d%d", &year1, &month1, &day1); nDayDiff = GetDiffYearDays(2011, year1) - GetPassedMonthDays(2011, 1, 1) + GetPassedMonthDays(year1, month1, day1); if (nDayDiff % 5 >= 1 && nDayDiff % 5 <= 3) printf("打渔\n"); else printf("晒网\n"); return 0;}
运行结果:
阅读全文
1 0
- 打渔晒网问题(难度:1颗星)
- 分糖果问题(难度:1颗星)
- 约瑟夫环问题(一)(难度:1颗星)
- 空瓶换汽水问题(难度:1颗星)
- 百钱买百鸡问题(难度:半颗星)
- 输出螺旋数组(难度:1颗星)
- 哥德巴赫猜想(难度:1颗星)
- 约瑟夫环问题(二):(难度:2颗星)
- 关于1+2,有点难度的问题
- LeetCode 问题汇总(算法,难度,频率)
- LeetCode 问题汇总(算法,难度,频率)
- 拼音读数字(难度系数:1颗星)
- 输出菱形图案(难度系数:1颗星)
- 随机生成数字放入数组(难度系数:1颗星)
- 计算两个日期的间隔天数(难度:1颗星)
- 这一天是星期几(难度:1颗星)
- 生成连连看地图(难度:1颗星)
- 超级难度数学问题
- maven打包出现的utf-8编码错误的解决
- 集合Vector--Java基础078
- php xhprof使用
- ubuntu16.04.2安装mysql
- 安装Dubbo注册中心(Zookeeper-3.4.6)
- 打渔晒网问题(难度:1颗星)
- Android应用名与activity窗口标题名字如何做到不一样
- 物理机上不能通过Navicat连接虚拟机上安装的mysql解决办法
- 堆栈的相关操作_链式存储
- 数学建模与数据科学简要(Mathematical model&Data science)
- 移动端IOS使用EasyAr实现非unity(unity)案例介绍
- IP
- idea快捷键
- case when