信息学奥赛强化练习卷六以下各题请分析问题,完善程序:1.[题目]找出小于33的6个正整数,用这些整数进行加法运算,使得包括原来的整数在内能组成尽可能多的不同整数。例如:用2,3,5这三个数能可组成下面的数2,3,52+3=5,但5已经存在2+5=7,3+5=8,2+3+5=10所以用2,3,5能组成6个不同的数。[程序要求]:输出所选的这6个数,以及能组成不同整数的个数。[算法提要]:选择的这6个数,用来组成数时应该尽可能不重复,引入数组A保存找出的这6个整数。程序:beginA[1]:=1;t:=0;Fori:=2to6dobegin_____①____;forj:=1toi-1dos:=______②_______;a[i]:=_______③_______;END;FORi:=1TO6DObeginT:=______④______WRITE(a[i],'');END;Writeln('能组成不同整数的个数:',t)End.答:①s:=0;②s:=s+a[j];③a[i]:=s+1④t:=t+a[i];或t:=t*2+1分析:掌握程序中变量S的意义是求解本题的关键。根据算法说明中提到的“选择的这6个数,用来组成数时应尽可能不重复”这一策略,同时,这6个数要小于33的限制条件,我们不妨假设前I-1个数a1,a2,a3,a4…ai-1已找到,对第I个数ai,确定其值的原则为:(1)ai要尽可能小且满足a1
A[J]THEN③;WRITELN('S=',S)END.答:①N-1②I+1③S:=S+1;4.[题目]装球:设有n个盒子(n足够大,可装入任何数量的球),分别编号1,2,……。同时有k个小球(k>0),今将k个小球装入到盒子中去。装入规则如下:(1)第一个盒子不能为空。(2)装入必须严格按递增顺序进行。例如,当k=8,n=6时,装入方法有1,2,5或1,3,4(3)在满足上面的两个条件下,要求有球的盒子尽可能多。(4)装完后,相邻盒子中球个数差的绝对值之和最小(未装的盒子不计)。如上例中:装入法1,2,5,则差的绝对值之和为2-1+5-2=4装入法1,3,4,则差的绝对值之和为3-1+4-3=3[程序要求]给出k(k表示小球的个数)之后,求出满足上述四个条件的装入方法。[算法描述]设计一个数组A用数组元素...