QBasic编程题:装球,设8个盒子,分别编1,2……同时13个小球进将13个小球装盒中去。

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:08:11
1、第一个不为空
2、装入必须严格遵守递增的顺学如1,3,4,5
3、在满足上面两个条件,要求盒子尽可能多
4、装后,相邻盒子球个数差最小
如:输入13
1、3、4、5 (3-1+4-3+5-3)=4
1、2、3、7 就大一些
拜托各位高手
什么EXIT FOR 这个我没有学
老师是不会认可的
拜托了
!!
可是后面有NEXT .

方法如下:
1).算出最多要用多少箱子,如要放入13只球,就要分别放在4只盒子里.
(如下程序算法)
2).假设这几只箱子里的球都是它的编号个数,如第只盒子里放1个球,第7只盒子里放7个球,算出总和,如要放5只盒子,就假设放:
1+2+3+4+5=15只球,再用15-(真正要放入球的个数)13=2,得到2,就倒过来,把第4只盒子加1,再把第3只盒子加1,这样球就用完了,得到1,3,4,5
3).输出
-----------------------------------------------------------
1)
DIM a(8)
INPUT k
FOR i = 1 TO k
a(i) = i + 1
s = s + a(i)
v = v + 1
IF s >= k THEN EXIT FOR
NEXT i
s = 0
2)
FOR i = 1 TO v
a(i) = i
s = s + a(i)
NEXT i
x = ABS(s - k)
i = v
FOR j = 1 TO x
a(i) = a(i) + 1
i = i - 1
NEXT j
3)
FOR i = 1 TO v
PRINT a(i);
NEXT i
-----------------------------------------------------------
总结归纳最后程序清单:
CLS
DIM a(8)
INPUT k
FOR i = 1 TO k
a(i) = i + 1
s = s + a(i)
v = v + 1
IF s >= k THEN EXIT FOR
NEXT i