资源描述:
《编程网格若干题目》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、题目 - 日历问题1题目-生日相同3题目-开关灯5题目-出现次数超过一半的数6题目-谁考了第k名8题目-区间合并9题目-距离排序12题目-吃糖果问题14题目-采药16题目-辉辉的日程表17题目-二进制加法20题目-神奇的幻方22题目-试剂稀释25题目 - 日历问题来源Shanghai2004Preliminary描述在我们现在使用的日历中,闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700,1800,1900和2100不是闰年,而1600,2000和2400是闰年。给定从公元2000年1月1日开始
2、逝去得天数,你的任务是给出这一天是哪年哪月哪日星期几。 提示:2000年1月1日是周六关于输入输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是−1,不必处理。可以假设结果的年份不会超过9999。关于输出对每个测试样例,输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DDDayOfWeek”,其中“DayOfWeek”必须是下面中的一个:"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"and"Saturday“。例子输入17301
3、74017501751-1例子输出2004-09-26Sunday2004-10-06Wednesday2004-10-16Saturday2004-10-17Sunday提交程序#includeinttype(int);charweek[7][10]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};intyear[2]={365,366};intmonth[2][12]={31,28,31,30,31,30,31,31,30,31,30
4、,31,31,29,31,30,31,30,31,31,30,31,30,31};intmain(intargc,char*argv[]){intdays,dayofweek;inti=0,j=0;while(scanf("%d",&days)&&days!=-1){dayofweek=days%7;for(i=2000;days>=year[type(i)];i++)days-=year[type(i)];for(j=0;days>=month[type(i)][j];j++)days-=month[type(i)][j];printf("%d-%0
5、2d-%02d%s",i,j+1,days+1,week[dayofweek]);}return0;}inttype(intm){if(m%4!=0
6、
7、(m%100==0&&m%400!=0))return0;elsereturn1;}题目-生日相同来源工学院计算概论07描述在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日。试找出所有生日相同的学生。关于输入第一行为整数n,表示有n个学生,n<100。此后每行包含一个字符串和两个整数,分别表示学生的学号(字符串长度小于10)和出生月(1≤m≤12)日(1≤d
8、≤31)。学号、月、日之间用一个空格分隔。关于输出对每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的学号,数字、学号之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。对生日相同的学号,按输入的顺序输出。例子输入6005081923200508153450050817232005080234500509122450050914646例子输出32005081920050817245005081530050802300509122提示注意,一个学生的生日不与其他任何学生的生日相同,则不输出该学生的记录。字
9、符串数组的输入输出使用示例:charnum[10];scanf("%s",num);printf("%s",num);注意:字符串数组输入输出时不需要“&”#include#includeintmain(){inty[100],r[100],t[100];charxh[100][10],tmpxh[10],sc[100][10];intn,i,k,j,tmpy,tmpr,tmpt,tx,h;scanf("%d",&n);for(i=0;i10、]);t[i]=y[i]*31+r[i];}for(k=1;k<=n;k++){for(i=0