2007年江苏省"信息与未来"小学生夏令营活动程序设计试题.pdf
20072007 年江苏省信息与未来小学生夏令营活动程序设计试题年江苏省信息与未来小学生夏令营活动程序设计试题计算机操作项目之一:程序设计试题计算机操作项目之一:程序设计试题(完成时间:完成时间:210210分分钟钟)题一题一选夏令营旗手选夏令营旗手【问题描述问题描述】一年一度的江苏省“信息与未来”小学生夏令营活动又开始了。与每年一一年一度的江苏省“信息与未来”小学生夏令营活动又开始了。与每年一样,组织者又设计安排了许多有趣的活动,其中第一项依然是挑选本次夏令营样,组织者又设计安排了许多有趣的活动,其中第一项依然是挑选本次夏令营的旗手!由于这是一个非常具有荣誉感的角色,所以报名参加夏令营旗手角逐的旗手!由于这是一个非常具有荣誉感的角色,所以报名参加夏令营旗手角逐的营员仍然非常多,营委会于是规定:的营员仍然非常多,营委会于是规定:将将 N N 个人排成一排,编号个人排成一排,编号1 1N N。从第。从第1 1 人开始进行人开始进行 1 1MM 正向报数,报正向报数,报到到 MM 的人出列,再从下一个人开始继续的人出列,再从下一个人开始继续 1 1 到到 MM 报数、出列。(注意:按某个报数、出列。(注意:按某个方向报数报到尾部时,再反方向继续报数)。如此进行下去,直到剩下一人为方向报数报到尾部时,再反方向继续报数)。如此进行下去,直到剩下一人为止,这个人就是本次夏令营的旗手。止,这个人就是本次夏令营的旗手。小明非常渇望能成为旗手,你能编一个程序帮助他实现愿望吗?如果可以的小明非常渇望能成为旗手,你能编一个程序帮助他实现愿望吗?如果可以的话,你的程序应输出小明的编号。话,你的程序应输出小明的编号。【输输入入】:键盘输入二个整数键盘输入二个整数 N N,MM(2 2N N,MM300300,N N MM),用一个),用一个逗号分隔。逗号分隔。【输输出出】:输出到屏幕输出到屏幕。一个整数,表示小明在队列中的编号。一个整数,表示小明在队列中的编号。【样样例例 1 1】:输入输入输出输出9,39,38 8注:出列顺序为:3、6、9、5、1、7、2、4【样样例例 2 2】:输入输入输出输出8,38,38 8注:出列顺序为:3、6、7、2、5、1、4题二题二整数拆段整数拆段【问题描述问题描述】将一个位数为将一个位数为 L L(4 4L L1010)的自然数)的自然数 N N 拆成拆成 4 4 段,使各段对应的数的段,使各段对应的数的乘积最小乘积最小。你能编一个程序实现吗?你能编一个程序实现吗?【输输入入】:键盘输入一个自然数键盘输入一个自然数 N N。【输输出出】:输出到屏幕输出到屏幕。一个整数,最小乘积。一个整数,最小乘积。【样样例例】:输入输入输出输出32142732142722682268注:注:3*2*14*27=22683*2*14*27=226822682268题三题三压缩数据的解压压缩数据的解压【问题描述问题描述】从输入文件中读取一些被压缩的数据,进行解压,再根据题目要求将结果输从输入文件中读取一些被压缩的数据,进行解压,再根据题目要求将结果输出至屏幕。出至屏幕。【输【输入】:入】:文件读入。文件读入。它的第一行为一个正整数它的第一行为一个正整数 k k,指明以下的数据分为,指明以下的数据分为 k k 段。段。第二行是第二行是 k k 段压缩数据串,每个段有两种格式(数之间用一个逗号分隔):段压缩数据串,每个段有两种格式(数之间用一个逗号分隔):如果每段第如果每段第 1 1 个数个数 n n 为正,为正,则该段只有两个数,则该段只有两个数,其解压操作是将该段的第其解压操作是将该段的第 2 2个数重复个数重复 n n 次;次;如果每段第如果每段第 1 1 个数个数 n n 为负数,则该段有为负数,则该段有|n|+1|n|+1 个数,其解压操作是重复该个数,其解压操作是重复该段从第段从第 2 2 个数开始的个数开始的|n|n|个数一次。(注:个数一次。(注:|n|n|表示取表示取 n n 的绝对值)的绝对值)【输【输出】:出】:输出到屏幕。经解压后得到的整数串上所有数字之和。输出到屏幕。经解压后得到的整数串上所有数字之和。【样【样例】:例】:文件读入:文件读入:5 53,2,-5,0,1,2,3,4,5,1,5,0,-4,4,3,2,13,2,-5,0,1,2,3,4,5,1,5,0,-4,4,3,2,1输出:输出:3131注:经解压后得到的整数串注:经解压后得到的整数串 2 2 2 0 1 2 3 4 1 1 1 1 1 00 0 02 2 2 0 1 2 3 4 1 1 1 1 1 00 0 00 4 3 2 10 4 3 2 1题四题四求数位上的数字求数位上的数字【问题描述问题描述】给出二个整数给出二个整数 N N 和和 K K,求出,求出 N N 的的 K K 次方的结果中的十位数和个位数的数次方的结果中的十位数和个位数的数字。字。【输输入入】:键盘输入二个整数键盘输入二个整数 N,KN,K(2 2N N,K K100000000100000000)。)。【输输出出】:输出到屏幕。输出到屏幕。二个数字二个数字(分别表示(分别表示 N N 的的 K K 次方结果中的十位数和个位数的数字,次方结果中的十位数和个位数的数字,用一个用一个空格分隔)。空格分隔)。【样样例例】:输入输入输出输出3 3,6 62 29 9注:注:3 36 6=729=729题五题五移动纸牌移动纸牌【问题描述问题描述】有有 n n 堆纸牌(堆纸牌(2 2n n200200),排成一行,编号分别为),排成一行,编号分别为 1,2,1,2,n n。已知每堆纸牌有一定的张数,且张数之和均为已知每堆纸牌有一定的张数,且张数之和均为 n n 的倍数。移动各堆中的的倍数。移动各堆中的任意张纸牌,使每堆的数量达到相同,且移动次数最少。任意张纸牌,使每堆的数量达到相同,且移动次数最少。移动规则:移动规则:每次可以移动任意的张数,第每次可以移动任意的张数,第1 1 堆可以移向第堆可以移向第 2 2 堆,第堆,第2 2 堆可以移向第堆可以移向第 1 1堆或第堆或第 3 3 堆堆,。第第 n n 堆只可以移向第堆只可以移向第 n-1n-1 堆。堆。例如,当例如,当 n=4n=4 时:时:堆号堆号1 12 23 34 4张数张数3 35 54 48 8移动的方法有许多种,其中的一种方案:移动的方法有许多种,其中的一种方案:第第 2 2 堆向第堆向第 1 1 堆移动堆移动 2 2 张,成为:张,成为:5 53 34 48 8 第第 4 4 堆向第堆向第 3 3 堆移动堆移动 3 3 张,成为:张,成为:5 53 37 75 5 第第 3 3 堆向第堆向第 2 2 堆移动堆移动 2 2 张,成为:张,成为:5 55 55 55 5经过三次移动,每堆都成为经过三次移动,每堆都成为 5 5 张。张。【输输入入】:文件读入。文件读入。第一行一个整数第一行一个整数 n n。第二行第二行 n n 个整数,用逗号分隔。个整数,用逗号分隔。【输输出出】:输出到屏幕。一个整数(表示最少移动次数)。输出到屏幕。一个整数(表示最少移动次数)。【样样例例】:输入输入输出输出4 43 33,5,4,83,5,4,8