【OJ练习】三天打渔两天晒网
2014-07-07 12:20
204 查看
描述:
俗话说三天打渔两天晒网,某人从2010年1月1日开始打三天鱼,然后晒两天网,然后再打三天鱼,再晒两天网,周而复始,输入任意一天,求该天是打渔还是晒网
// 功能:从2010年1月1日起判断输入时期是否为打渔
// 输入: unsigned int nYear
输入日期的年, unsigned int nMonth
输入日期的月, unsigned int nDay 输入日期的日
// 输出:无
// 返回: 1
表示该天为打渔,0表示该天为晒网
unsigned int IsTodayFishing (unsigned int nYear, unsigned int nMonth, unsigned int nDay)
{
int Num_year;
int Num;
int i;
int Num1[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int Num2[12]={31,28,31,30,31,30,31,31,30,31,30,31};
Num_year=nYear-2010;
Num=Num_year*365+(Num_year+1)/4;
if(nYear%4==0)
{
if(nMonth>1)
{
for(i=1;i<nMonth;i++)
Num+=Num2[i-1];
}
}
else
{
if(nMonth>1)
{
for(i=1;i<nMonth;i++)
Num+=Num1[i-1];
}
}
Num=Num+nDay;
Num=Num%5;
if(Num>=1&&Num<=3)
return 1;
else
return 0;
}
俗话说三天打渔两天晒网,某人从2010年1月1日开始打三天鱼,然后晒两天网,然后再打三天鱼,再晒两天网,周而复始,输入任意一天,求该天是打渔还是晒网
// 功能:从2010年1月1日起判断输入时期是否为打渔
// 输入: unsigned int nYear
输入日期的年, unsigned int nMonth
输入日期的月, unsigned int nDay 输入日期的日
// 输出:无
// 返回: 1
表示该天为打渔,0表示该天为晒网
unsigned int IsTodayFishing (unsigned int nYear, unsigned int nMonth, unsigned int nDay)
{
int Num_year;
int Num;
int i;
int Num1[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int Num2[12]={31,28,31,30,31,30,31,31,30,31,30,31};
Num_year=nYear-2010;
Num=Num_year*365+(Num_year+1)/4;
if(nYear%4==0)
{
if(nMonth>1)
{
for(i=1;i<nMonth;i++)
Num+=Num2[i-1];
}
}
else
{
if(nMonth>1)
{
for(i=1;i<nMonth;i++)
Num+=Num1[i-1];
}
}
Num=Num+nDay;
Num=Num%5;
if(Num>=1&&Num<=3)
return 1;
else
return 0;
}
相关文章推荐
- 递推 OJ练习(C++)
- 图结构练习——最短路径 oj
- 关于“三天打渔两天晒网”的算法问题
- 华为OJ——(练习用)挑7
- 九度OJ 1151:位操作练习 (位操作)
- UVA-OJ.关于数论的成长练习
- YTU-OJ-Problem H: 虚函数练习:动物2
- OJ练习中的注意事项
- <C/C++基础>九度OJ题目1050--1100解题练习(三)
- [土狗之路]coursera 与 oj上的递归练习作业-- 单词翻转 角谷猜想
- oj 2736: 指针练习--输出最大值
- <C/C++算法>九度OJ题目1465--1515解题练习(九)
- C语言基础—小实例:三天打渔两天晒网
- 第11周OJ练习-5 求最大公约数和最小公倍数
- 第十一周OJ练习--方程
- 九度OJ 1151:位操作练习 (位操作)
- oj练习(2415)C语言习题 输出A打头的字符串
- 兴趣学习: 摆脱“三天打渔两天晒网”…
- 【OJ练习】并行计算器
- 三天打渔,两天晒网(C)