编程网格若干题目.docx

上传人:工**** 文档编号:557920519 上传时间:2024-02-29 格式:DOCX 页数:37 大小:34.55KB
返回 下载 相关 举报
编程网格若干题目.docx_第1页
第1页 / 共37页
编程网格若干题目.docx_第2页
第2页 / 共37页
编程网格若干题目.docx_第3页
第3页 / 共37页
编程网格若干题目.docx_第4页
第4页 / 共37页
编程网格若干题目.docx_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《编程网格若干题目.docx》由会员分享,可在线阅读,更多相关《编程网格若干题目.docx(37页珍藏版)》请在金锄头文库上搜索。

1、题目-日历问题1题目 - 生日相同3题目 - 开关灯5题目 -出现次数超过一半的数6题目 - 谁考了第k名8题目 - 区间合并9题目 - 距离排序12题目 - 吃糖果问题14题目- 采药16题目- 辉辉的日程表17题目- 二进制加法20题目- 神奇的幻方22题目 - 试剂稀释25题目-日历问题来源Shanghai 2004 Preliminary描述在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000

2、年1月1日开始逝去得天数,你的任务是给出这一天是哪年哪月哪日星期几。提示:2000年1月1日是周六关于输入输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是1, 不必处理。可以假设结果的年份不会超过9999。关于输出对每个测试样例,输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DD DayOfWeek”, 其中 “DayOfWeek” 必须是下面中的一个: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday and Saturday“。例子输入1730 1740 1750 1751 -

3、1例子输出2004-09-26 Sunday 2004-10-06 Wednesday 2004-10-16 Saturday 2004-10-17 Sunday提交程序#include int type(int); char week710 = Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday; int year2= 365, 366; int month212 = 31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31,31, 29, 31, 30, 31, 30, 31, 31

4、, 30,31, 30, 31; int main(int argc, char* argv) int days, dayofweek; int i = 0, j = 0; while( scanf(%d, &days) & days != -1) dayofweek = days % 7; for( i = 2000; days = yeartype(i); i+) days -= yeartype(i); for( j = 0; days = monthtype(i)j; j+) days -= monthtype(i)j; printf(%d-%02d-%02d %sn, i, j +

5、1, days + 1, weekdayofweek); return 0; int type( int m) if( m % 4 != 0 | ( m % 100 = 0 & m % 400 != 0 ) return 0; else return 1; 题目 - 生日相同来源工学院计算概论07描述在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日。试找出所有生日相同的学生。关于输入第一行为整数n,表示有n个学生,n 100。 此后每行包含一个字符串和两个整数,分别表示学生的学号(字符串长度小于10)和出生月(1 m 12)日(1 d 31)。 学号、

6、月、日之间用一个空格分隔。关于输出对每组生日相同的学生,输出一行, 其中前两个数字表示月和日,后面跟着所有在当天出生的学生的学号,数字、学号之间都用一个空格分隔。 对所有的输出,要求按日期从前到后的顺序输出。 对生日相同的学号,按输入的顺序输出。例子输入600508192 3 200508153 4 500508172 3 200508023 4 500509122 4 500509146 4 6例子输出3 2 00508192 005081724 5 00508153 00508023 00509122提示注意,一个学生的生日不与其他任何学生的生日相同,则不输出该学生的记录。 字符串数组的输

7、入输出使用示例: char num10; scanf(%s,num); printf(%s,num); 注意:字符串数组输入输出时不需要“&”#include #include int main()int y100,r100,t100; char xh10010,tmpxh10,sc10010; int n,i,k,j,tmpy,tmpr,tmpt,tx,h; scanf(%d,&n); for(i=0;in;i+)scanf(%s %d %d,xhi,&yi,&ri);ti=yi*31+ri; for(k=1;k=n;k+)for(i=0;iti+1)tmpy=yi+1; yi+1=yi;

8、yi=tmpy; tmpr=ri+1; ri+1=ri; ri=tmpr; tmpt=ti+1; ti+1=ti; ti=tmpt; strcpy(tmpxh,xhi+1); strcpy(xhi+1,xhi); strcpy(xhi,tmpxh); for(tx=1;tx373;tx+) int s=0; for(i=0;i1)printf(%d %d,yi-1,ri-1);for(h=1;h=s;h+)printf( %s,sch); printf(n); s=0; system(pause);return 0;题目 - 开关灯来源元培-From Whf描述假设有N盏灯(N为不大于5000

9、的正整数),从1到N按顺序依次编号,有M个人(M为不大于N的正整数)也从1到M依次编号,第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。关于输入输入正整数N和M,以逗号间隔关于输出顺次输出关闭的灯的编号,其间用逗号间隔例子输入10,10例子输出1,4,9#include int a5001=0;int main() int n,m,

10、i,j; scanf(%d,%d,&n,&m); for(i=1;i=m;i+)for(j=1;j=n;j+) if(j%i=0)aj=1-aj; for(j=1;j=n;j+)if(aj=1)printf(%d,j);system(pause); return 0;题目 -出现次数超过一半的数描述给出一个含有n个整数的数组,请找出其中出现次数超过一半的数(n = 1000)。 数组中的数大于-50且小于50。 关于输入输入的第一行包含样例的组数m。 此后有m组样例,每组样例的第一行包含数组大小n,第二行上是这n个整数。 关于输出如果存在这样的数,输出这个数;否则输出”no”。例子输入221

11、231 2 2例子输出no2#include #include int main()int m,n,i,j,k,sz1001,js100=0,you=0; scanf(%d,&m); for(i=0;im;i+)you=0;scanf(%d,&n); int half=n/2; for(k=0;k99;k+)jsk = 0;for(j=0;jn;j+) scanf(%d,&szj);for(k=(-49);k50;k+)if(szj=k)jsk+49+; for(k=0;khalf)printf(%dn,k-49);you=1; if(you=0)printf(non); system(pause);return 0;题目 - 谁考了第k名来源北大医学部07计算概论模拟考试1描

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号