信息学奥赛强化练习卷六以下各题请分析问题,完善程序: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