阅读以下说明和流程图,回答问题。[说明] 从键盘输入一个高精度正整数n,去掉其中s个数字后按原左右

10 查阅

阅读以下说明和流程图,回答问题。

[说明]

从键盘输入一个高精度正整数n,去掉其中s个数字后按原左右次序再组成一个新的正整数。对给定的n,要寻找一种方案,使得余下的数字组成的新数最小。

算法分析:

每次删除一个数字,选择一个使余下的数最小的数字作为删除对象。当s=1时,在n中删除哪一个数字能达到最小的目的?从左到右每相邻的两个数字比较:若出现减,郎左边大于右边,则删除左边的大数字;若不出现减,即所有数字全部升序,则删除最右边的大数字。当s>l(当然小于n的位数),按上述操作一个一个删除,删除一个达到最小后,再从头即从串首开始,删除第2个,依此分解为s次完成。若删除不到s个后已无左边大于右边的减序,则停止删除操作,打印余下串的左边L-s个数字即可。(x为统计删除数字的个数,m=1表示脱离循环,L为n的长度)。

[流程图]

[问题]

将流程图中的(1)~(5)处补充完整。

参考答案:

(1)s>x&&m=0 (2)1-x-L (3)a(i)=a(k+1) (4)m=1 (5)for(i=li1-s;i++)(1)s>x&&m=0 (2)1-x-L (3)a(i)=a(k+1) (4)m=1 (5)for(i=li1-s;i++)

软考初级