回 帖 发 新 帖 刷新版面

主题:[讨论]考考大家(来者有分)

装球游戏。游戏是这样的:有N个盒子(N足够大,可装入任何数量的球),分别编号1,2,……,N。同时有S个小球(0<S<100),要求将S 个小球装入到盒子中去。装球时必须遵守以下的规则:(1)第1个盒子不能为空;(2)第1个盒子和最后一个有球的盒子中间不可以有空的盒子;(3)装入必须严格按递增顺序进行,即每个有球盒子中的小球数必须比它前面的盒子中的小球数多;(4)要求有球的盒子尽可能多;(5)装完后,相邻盒子中球个数差的绝对值之和最小(未装的盒子不计)。
    如:当S=8,N=6时,装入方法有1,2,5或1,3,4。装入法1,2,5时差的绝对值之和为ABS(2-1)+ABS(5-2)=4;装入法1,3,4时差的绝对值之和为ABS(3-1)+ABS(4-3)=3。所以装入法1,3,4为正确的装入方法。请你也编写一个这样的程序,当从键盘输入S(S表示小球的个数,0<S<100)之后,输出满足上述游戏规则的装入方法。

回答就有分

回复列表 (共1个回复)

沙发


难!
可用循环

我来回复

您尚未登录,请登录后再回复。点此登录或注册