程序设计比赛试题
eli 的生日礼物
【问题描述】
Felicia 的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给 Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。 Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100 *_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。 Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20 时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。
【要求】
【数据输入】每行一个n,直到输入数据结束
【数据输出】对应输入的n,每行输出一个答案
【样例输入】 1101
【样例输出】 8
取石子游戏
【问题描述】
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
【要求】
【数据输入】输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。
【数据输出】输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。
【样例输入】 2 1 8 4 4 7
【样例输出】 0 1 0
勇气的挑战
【问题描述】
给定n个点的坐标(x,y,z),且n<=50,从点1出发,怎么样才能走一条路径,访问每个点一次且仅一次,使走过的距离和最小?
【要求】
【数据输入】多组数据. 第1行n,然后n行3个整数坐标
【数据输出】每组一行,代表最小权和
【样例输入】 3 0 0 0 1 1 0 1 -1 0
【样例输出】 3.4
统计同成绩学生人数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1608 Accepted Submission(s): 877
【问题描述】
读入N名学生的成绩,将获得某一给定分数的学生人数输出。
【要求】
【数据输入】测试输入包含若干测试用例,每个测试用例的格式为 第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。 第3行:给定分数
当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。
【数据输出】对每个测试用例,将获得给定分数的学生人数输出。
【样例输出】 3
80 60 90 60 2 85 66 0 5
60 75 90 55 75 75 0
【样例输出】 1 0 2
钱币兑换问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 494 Accepted Submission(s): 247
【问题描述】
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。
【要求】
【数据输入】每行只有一个正整数N,N小于32768。
【数据输出】对应每个输入,输出兑换方法数。
【样例输入】 2934 12553
【样例输出】 718831 13137761