主题:数的计数问题
紫月蓝风
[专家分:30] 发布于 2007-04-17 20:21:00
[问题描述]
我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理
1、不作任何处理:
2、在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3、加上数后,继续按此规则进行处理,直到不能再加自然数为止。
[样例] 输入:6
满足条件的数为 6 (此部分不必输出)
6
16
26
126
36
136
输出:6
回复列表 (共7个回复)
沙发
&佑慧妹妹& [专家分:660] 发布于 2007-04-17 20:25:00
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
参考一下
板凳
mickeyice [专家分:200] 发布于 2007-04-18 15:42:00
呵呵错了哦
比如 我 第一个自然数是 100
那么前面第2个自然数就可能是50
50100
再前面可以加25
2550100
楼上只能做个位吧?
3 楼
mickeyice [专家分:200] 发布于 2007-04-18 15:56:00
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 楼
Matodied [专家分:7560] 发布于 2007-04-22 21:27:00
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 楼
Matodied [专家分:7560] 发布于 2007-04-24 21:23:00
我顶!我顶!顶到评分为止.
6 楼
&佑慧妹妹& [专家分:660] 发布于 2007-04-25 18:14:00
哦,楼主没来评?
7 楼
Matodied [专家分:7560] 发布于 2007-05-07 14:52:00
你的<急求,加60~90分!!!>我本想做的,可没想到你这么快就结帖了,只能在这里做了.
CLS
FOR i = 1 TO 5
PRINT TAB(i); STRING$(i, "*")
NEXT i
END
我来回复