1.题目:设计和实现描述任意一个排序算法(快速排序、冒泡排序、选择排序等)的动画。
要求:n个待排序的数据是动态生成的(n>=10);每次排序的步骤都要在动画中显示出来。
2.题目:编写程序实现一个简单的日历,
主要功能包括显示当月的日历表,当日特殊显示。
3.题目:编写程序实现五子棋
程序设计一个围棋棋盘,由两名玩家进行对战,并可以选择落子的先后顺序,重置棋盘,刷新重新开始,最后判断某一方是否为五子连珠。
4. 两个简单题目一起完成:
题目1:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
题目2:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
5 题目描述:在几千人的大团队,工程师们经常需要在一起进行“头脑风暴”,这样会议室就成了紧缺资源。
为了有效利用资源,大家决定制定规则,自动安排会议室的使用。
为了公平起见,应按照申请时间从早到晚依次考虑,先到先得,且申请一旦被接受就不能再取消。
注意同一时间开的不同会议必须在不同的会议室,而同一个人不能同时参加两个会议。
输入格式:输入第一行为会议室总数N和申请总数M;第二行是N个整数,表示会议室能够容纳的人数以下M行每行是一个请求,按请求时间先后顺序排列(即应优先满足在输入中更早出现的请求)。
每个请求中第一个是整数,表示会议需要的时间长度(单位:小时);之
后为与会人名单。
人名由不超过四个汉字组成,用半角逗号分隔(每人名字固定且唯一,有重名的也在登记时区分开)。
名单后的数字表示可以安排会议的时间,也以半角逗号分隔,如 10,11,14,15 表示第10, 11,
14, 15个小时可以开会(会议时间为9到19之间的正整数)。
输出格式:
输出M个数,依次表示每个请求是否被接受。
1表示接受,0表示不接受。
输入示例:
4
20 2
3 张三,李四,王五 10,11,12,14,15
1 张三12
4 王六,王七,王八,王九,王十 9,10,11,12,13,14,15
2 张三 14,15
输入示例:
1 0 0 1
6、题目描述:
每个工程师团队都有一笔还算丰裕的食品经费,足够每天购置多种水果。
水果往往下午送达公司前台。
前台的姐姐们只要看到同时出现五种或以上的水果,就称之为“水果开会”。
从搜索引擎切词的语法角度,只要两种水果的名字中有一个字相同就属于同样的类别。
例如“小雪梨”和“大雪梨”是同一种水果,而“核桃”和“水蜜桃”也被认为是同一种水果。
尤其要指出的是,如果有三种水果x, y, z同时在前台出现,且x和y是同一种水果,y和z也是同一种水果的时候,x和z也被认为是同一种水果。
现在前台的姐姐们想知道,今天是否有“水果开会”——五种或更多的水果同时在前台出现。
输入格式:
输入的第一行只有一个整数n,表示购置水果的组数。
接下来的n行表示水果的到达时间、取走时间(时间用1200到1900之间的正整数表示,保证取走时间大于到达时间)。
剩下的字符串以空格分割每一种水果。
如“1400 1600 雪梨水蜜桃”,表示下午两点到四点(包含两点和四点这两个时间点),雪梨和水蜜桃会在前台等待开会。
每种水果名称由不超过十个汉字组成。
输出格式:
输出仅一行,包含一个字符串Yes或No,分别表示今天水果开会与否。
输入示例1:
3
1200 1400 雪梨柠檬
1300 1400 西瓜苹果
1400 1800 花生水蜜
输出示例1
Yes
输入示例2:
3
1200 1400 雪梨柠檬
1400 1500 哦大梨呀
1500 1800 咦大梨
输出示例2:
No
7 股票投资问题
在股票操作中“低价买入”就是成功的一半。
但是作为一个出色的投资者,必须遵从下面的规律:“低价买入,更低价买入”。
意思是说当买入一支股票的时候,它的价格必须低于你最近一次的购买价格。
这样购买的次数越多,这只股票的成本价就越低,投资的收益也就越大。
根据每天的股票价格,投资者可以在任意一天开始买股票。
不过请记住,必须让每次购买的价格低于上一次的买入价。
请你写一个程序,找出哪些天应该购买股票,使得购买的次数最多。
输入说明(Input):
输入2行数据,第一行:天数day(5<=day<=25);第二行:每天的股价
price(10<=price<=100)。
输出说明:
对于每个测试实例,要求输出所有能够买入的天数顺序,以及这些天对应的股票价格。
每个测试实例的输出占2行。
输入示例:
Day 1 2 3 4 5 6
Price 10 11 12 13 14 15
Day 1 2 3 4 5 6 7 8 9 10 11 12
Price 68 69 54 70 68 64 70 62 67 78 98 87
输出示例:
Day 1
Price 10
Day 4 5 6 8
Price 70 68 64 62
8.Program国度的人,喜欢玩这样一个游戏,在一块板上写着一行数,共n个。
两个游戏者,轮流从最右或最左取一个数。
刚开始,每个游戏者的得分均为零。
如果一个游戏者取下一个数,则将该数的值加到该游戏者的得分上,最后谁的得分最高谁就赢了游戏。
给出这n个数( 从左往右), 假设游戏者都是非常聪明的,问最后两个人的得分(假设第一个人首先取数).
输入格式:第一行为n(2<=n<=100),第二行为n个数,每个数字之间均用空格隔开。
输出为两个游戏者的得分.第一个数表示第一个游戏者的得分,第二个数为第二个游戏者的得分,两个数字之间用空格隔开。
如输入
6
4 7 2 9
5 2
输出
18 11
9、 n 个人围成一圈, 并依次编号1~n,。
从编号为1 的人开始,按顺时针方向每隔一人选出一个,
剩下的人重新围成一圈,如此循环直到剩下两人,这剩下的两人就是幸运儿。
如果你想成为最后两个
幸运儿,请问开始时应该站在什么位置?(设3<=n<=50)
输入:开始时的人数n
输出:第1 行是选出顺序,第2 行是两名幸运儿的开始位置(按升序排列),位置编号之间用一个空格
分开。
输入:
12
应该的输出:
2 ,4, 6 ,8, 10, 12,
3 ,7, 11 ,5
1 ,9
10 题目:有n个人围成一圈,顺序排号。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
输入:10
输出:4,10
11、题目:机房的值日
描述:机房几乎每周都要照例做一次值日以保持卫生,tHeem_Lody知道一共有N(0<N<=25)种活需要去做,并且他把每种活都标记了一个劳累值Wi(0<Wi<=100000)。
机房的值日都是分为高一成员所做的部分和高二成员所做的
部分。
tHeem_Lody希望找到一个划分,使得这N种活分为两组分别给高一和高二的机房成员做,并且两组的劳累值差最小。
输入格式:
第一行:一个整数,N
第2..N+1行:每行一个正整数,第i+1行表示第i种活的劳累值。
输出格式:
一个整数,表示分成两组活的劳累值差的最小值。
输入示例:
5
5
8
13
27
14
输出示例:
3
12.两个简单题目一起完成:
题目1:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
程序分析:采取逆向思维的方法,从后往前推断。
题目2:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?
程序分析:利用递归的方法,递归分为回推和递推两个阶段。
要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。