做了近几年浙大的机试题,09年是最容易的一年。虽然知道做这些题目真正用到的机会渺茫,但还是会坚持做完,毕竟已经开始了,就不想中途放弃,浙大永远是我的梦...
第一题:xxx定律:数n,如果是偶数,把n砍掉一半;如果奇数,把3n+ 1砍掉一半,直到数变为1为止。测试包含多个用例,当数为0时结束。输出需要经过几步将n变到1;
Input:
3
1
0
Output:
5
0
我的代码:
第二题:ZOJ,读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然安装ZOJ的顺序输出。当读入的字符串为E时,结束。
Input:
ZZOOOJJJ
ZZZZOOOOOJJJ
E
Output:
ZOJZOJOJ
ZOJZOJZOJZOO
我的代码:
第三题:继续xxx定律,当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数。现在输入n个数字,根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输入输入的n个数中的关键数。
Input:第一行,n,第二行n个数,n为0时结束
3
3 8 4
0
Output:有多个关键数时逆序输出
3
我的代码:
第四题:寻找大富翁;输入n(0<n<=100000),m(0<m<=10),n为小镇上的人数,m为需要找出的大富翁数。输入:
n, m 接下来一行输入小镇n个人的财富值,输出:前m个大富翁的财产数,n为0时结束
Input:
3 1
2 5 -1
0 0
Output:
5
我的代码:
第五题: 找出直系亲属。如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild,如果A,B是C的(外)曾祖父,曾祖母,则A,B是C的great-grandparenet,C是A,B的great-grandchild,之后再多一辈,则在关系上加一个great-。
输入:n(0<=n<=26)表示n个亲属关系,形式为ABC,表示A的父母亲分别是B,C,如果A的父母亲信息不全,则用-代替,例如A-C。m(。。。)代表测试用例数,形式AB。输出:AB的关系,如A是B的直系亲属,按上述要求输出关系,如果A,B没有关系,输出-。当n为0时结束。
Input:
3 2
ABC
CDE
EFG
FA
BE
0 0
Output:
great-grandparent
做题思路:
1。利用的是树的概念,除了添加每个节点的双亲索引外,还增加了每个节点所在的层次(leve)
2。先通过层次遍历的方式查询两个节点是否存在亲属关系,如果存在则根据leve的差确定具体的亲属关系。
附我的代码:
(拖到现在也真是够晚的...)