站外求助

题目总版

大水题233(普及T1.2难度,就是比T1难一丢丢) 首先开头 ```cpp #include<iostream> usig namespace std; const int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //month数组表示非特殊月份的天数 int get_day(int x,int y) { if((x%4==0&&x%100!=0) || (x%400==0))//如果是闰年 { if(y==2) return 29; } return month[y]; } ``` 大致这样(代码在浏览器里面敲的) 这样get_month(年份,月份)就会返回这个月的天数。 main函数大概这样写 ``` 输入y,m,d; int day表示从20201月1日到现在的天数; for循环,i从2010到i<y,i++ for循环,j从1到j<=12,j++ day=day+get_month(i,j); //接着处理最后一个不完整的年份 for循环,i从1到i<m;i++ day=day+get_month(y,i); //最后加上不完整的一个月 day=day+d; //现在day就表示2010年1月1日,包括这一天到现在过了几天 然后如果day除以5的余数是0或1或2,就是打渔 余数是4或5就是晒网,输出即可 ``` 大致思路如上。这是较为简单的纯模拟算法,应该是很好理解的。还是建议理解完手敲一遍,因为我是纯浏览器打出来的,有语法错误也多包涵。 OI圈子需要新鲜血液,萌新入坑问比较傻的问题可能不一定有人回答,还请一定加油,最后祝早日AKIOI
by acha666 @ 2020-10-18 02:05:14


|