回 帖 发 新 帖 刷新版面

主题:拼三角【50】

拼三角
有一次,老师给小明N根小木棒,要他从中选出K根,使这K根当中的任意三根都能拼成一个三角形。老师告诉他,构成一个三角形的条件是:任意两边之和大于第三边,任意两边之差小于第三边。小明思考后,发现将这些小木棒按长短顺序排列后,很容易解决问题。请你用表达式RANDOM(900)随机产生N个正整数(表示小木棒的长度),帮小明求出K的最大值。
输入:N(3≤N≤500)
输出:K的最大值
样例
  输入:6
         排序后的6个随机数为:19,26,161,220,348,529
  输出:3

回复列表 (共8个回复)

沙发

不知这样行不行:
CLS
INPUT n
DIM a(n + 1)
FOR i = 1 TO n
RANDOMIZE TIMER
a(i) = INT(RND * 900 + 1)
NEXT i
PRINT
FOR i = 1 TO n - 1
    FOR j = i + 1 TO n
        IF a(i) > a(j) THEN SWAP a(i), a(j)
    NEXT j
NEXT i
FOR i = 1 TO n
    PRINT a(i);
NEXT i
PRINT
FOR i = 1 TO n - 1
    FOR j = i + 1 TO n
    FOR k = j + 1 TO n
    IF a(i) + a(j) < a(k) OR a(j) - a(i) > a(k) THEN a(i) = 0
     NEXT k
    NEXT j
NEXT i
PRINT
FOR i = 1 TO n
IF a(i) <> 0 THEN PRINT a(i): s = s + 1
NEXT i
PRINT s

板凳

太简单,用组合!

3 楼

对     组合的方法

4 楼

经典组合

5 楼

不错不错

6 楼

7 楼

有什么问题啊

8 楼

我来回复

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