C语言三天打鱼两天晒网算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最近,被一个华为面试官用这么个程序给虐了。 所以回来考虑了下,写下此篇,如果有误,请及时联系我。
比网上目前的简洁,也比网上现有的子函数少,也不用结构体,也不用数组。 已经亲测。沧海雄风 #include <stdio.h> int dryOrfish(int nYear,int nMonth,int nDay) { int bYear = 2010, bMonth = 1, bDay=1, y=0, leap=0, totalDay=0 ; for (y=bYear;y<nYear;y++) { leap+=((y%4==0&&y%100!=0)||y%400==0)?1:0; } totalDay = (nYear-bYear) * 365 + leap; for (;bMonth<nMonth;bMonth++) { switch(bMonth) { case 1:case 3:case 5:case 7:case 8:case 10:case 12: totalDay+=31;break; case 4:case 6:case 11: totalDay+=30;break; case 2: totalDay+= ((nYear%4==0&&nYear%100!=0) Hale Waihona Puke Baidu| nYear%400==0)?29:28; default: break; } } totalDay += nDay; return (totalDay%5==0 || totalDay%5==4)?0:1; } QQ 2227450184 2016、07、20
void main() { int year,month,day; while (1) {
scanf("%d,%d,%d",&year,&month,&day); if (dryOrfish(year,month,day)) { printf("fishing\n"); }else { printf("drying\n"); } } }
比网上目前的简洁,也比网上现有的子函数少,也不用结构体,也不用数组。 已经亲测。沧海雄风 #include <stdio.h> int dryOrfish(int nYear,int nMonth,int nDay) { int bYear = 2010, bMonth = 1, bDay=1, y=0, leap=0, totalDay=0 ; for (y=bYear;y<nYear;y++) { leap+=((y%4==0&&y%100!=0)||y%400==0)?1:0; } totalDay = (nYear-bYear) * 365 + leap; for (;bMonth<nMonth;bMonth++) { switch(bMonth) { case 1:case 3:case 5:case 7:case 8:case 10:case 12: totalDay+=31;break; case 4:case 6:case 11: totalDay+=30;break; case 2: totalDay+= ((nYear%4==0&&nYear%100!=0) Hale Waihona Puke Baidu| nYear%400==0)?29:28; default: break; } } totalDay += nDay; return (totalDay%5==0 || totalDay%5==4)?0:1; } QQ 2227450184 2016、07、20
void main() { int year,month,day; while (1) {
scanf("%d,%d,%d",&year,&month,&day); if (dryOrfish(year,month,day)) { printf("fishing\n"); }else { printf("drying\n"); } } }