回 帖 发 新 帖 刷新版面

主题:数的计数问题

[问题描述]
    我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理
   1、不作任何处理:
   2、在它的左边加上一个自然数,但该自然数不能超过原数的一半;
   3、加上数后,继续按此规则进行处理,直到不能再加自然数为止。
    [样例]    输入:6
                满足条件的数为  6     (此部分不必输出)
                            6
16
                           26
                          126
                           36
                          136
          输出:6

回复列表 (共7个回复)

沙发

DECLARE SUB abcde (b$, k!, s!)
CLS
INPUT n$
PRINT n$
s = 1
CALL abcde(n$, k, s)
PRINT
PRINT s

SUB abcde (b$, k, s)
  IF k = 0 THEN b = VAL(b$): k = 1 ELSE b = VAL(LEFT$(b$, 1))
  FOR i = 1 TO b / 2
    j = i
    IF i + 48 > 58 THEN j = j MOD 10
    c$ = CHR$(48 + j) + b$
    PRINT c$
    s = s + 1
    CALL abcde(c$, k, s)
  NEXT i
END SUB

参考一下

板凳

呵呵错了哦
比如 我 第一个自然数是 100
那么前面第2个自然数就可能是50
50100
再前面可以加25
2550100
楼上只能做个位吧?

3 楼

dim a[10]
input n
k=n:t=1

while (k>1)
  a[t]=k\2
  t=t+1
wend

for j=t to 1 step -1
   a[j]=a[j]+1
   while (a[j]>1) 
     a[j]=a[j]-1
     for i=1 to j
       ? a[i];
     next
     ? n
   wend
next

end

4 楼

CLS
2 INPUT n
IF n < 1 OR n > 100 OR n <> INT(n) THEN 2
PRINT LTRIM$(STR$(n)): a(1) = n: i = 1
IF n = 1 THEN 1
DO
  i = i + 1: a(i) = a(i - 1) \ 2
  IF a(i) = 0 THEN
     i = i - 2: a(i) = a(i) - 1
  END IF
  IF i = 1 THEN EXIT DO
  FOR j = i TO 1 STEP -1: PRINT RTRIM$(LTRIM$(STR$(a(j)))); : NEXT j: s = s + 1
  PRINT
LOOP
1 PRINT "Total:"; s + 1
END

5 楼

我顶!我顶!顶到评分为止.

6 楼

哦,楼主没来评?

7 楼

你的<急求,加60~90分!!!>我本想做的,可没想到你这么快就结帖了,只能在这里做了.
CLS
FOR i = 1 TO 5
    PRINT TAB(i); STRING$(i, "*")
NEXT i
END

我来回复

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