新乡正规网站建设哪家便宜,seo搜索引擎优化兴盛优选,品牌网站设计流程,邦邻营销型网站建设问题描述有一类节日的日期并不是固定的#xff0c;而是以“a月的第b个星期c”的形式定下来的#xff0c;比如说母亲节就定为每年的五月的第二个星期日。现在#xff0c;给你a#xff0c;b#xff0c;c和y1, y2(1850 ≤ y1, y2 ≤ 2050)#xff0c;希望你输出从公元y1年到…问题描述 有一类节日的日期并不是固定的而是以“a月的第b个星期c”的形式定下来的比如说母亲节就定为每年的五月的第二个星期日。 现在给你abc和y1, y2(1850 ≤ y1, y2 ≤ 2050)希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。 提示关于闰年的规则年份是400的整数倍时是闰年否则年份是4的倍数并且不是100的倍数时是闰年其他年份都不是闰年。例如1900年就不是闰年而2000年是闰年。 为了方便你推算已知1850年1月1日是星期二。 输入格式 输入包含恰好一行有五个整数a, b, c, y1, y2。其中c1, 2, ……, 6, 7分别表示星期一、二、……、六、日。 输出格式 对于y1和y2之间的每一个年份包括y1和y2按照年份从小到大的顺序输出一行。 如果该年的a月第b个星期c确实存在则以yyyy/mm/dd的格式输出即输出四位数的年份两位数的月份两位数的日期中间用斜杠“/”分隔位数不足时前补零。 如果该年的a月第b个星期c并不存在则输出none不包含双引号)。 样例输入 5 2 7 2014 2015 样例输出 2014/05/112015/05/10 评测用例规模与约定 所有评测用例都满足1 ≤ a ≤ 121 ≤ b ≤ 51 ≤ c ≤ 71850 ≤ y1, y2 ≤ 2050。 题意如题就是计算星期几暴力就可以了先算出每年的1月1日是星期几再算出每个月的1号是星期几再判断一下找到第几个星期几输出就行了。 #include cstdio
#include iostream
using namespace std;
int a,b,c,y1,y2,y;
int judge(int y) //返回真值则为闰年
{if((y%40y%100!0)||y%4000) return 1;return 0;
}
int d[15]{0,31,0,31,30,31,30,31,31,30,31,30,31};
int main()
{while(cinabcy1y2){c--;int sum1;for(int y1850;yy1;y){if(judge(y)) sum366;else sum365;sumsum%7;//if(y2013) printf(%d\n,sum);}//printf(%d**\n,sum1);for(int yy1;yy2;y){if(judge(y)) d[2]29;else d[2]28;for(int i1;i12;i){//if(ia) printf(%d***\n,sum1);if(ia){int tmp0;if(sumc)tmp7-sumc1(b-1)*7;elsetmpc-sum1(b-1)*7;if(tmpd[i])puts(none);elseprintf(%d/%02d/%02d\n,y,a,tmp);}//printf(y:%d m:%d xingqi:%d\n,y,i,sum1);sum(sumd[i])%7;}}}return 0;
} 转载于:https://www.cnblogs.com/Ritchie/p/6179349.html