回 帖 发 新 帖 刷新版面

主题:2006比赛的一道题

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

[样例]: 输入: 6
满足条件的数为 6 (此部分不必输出)
16
26
126
36
136
输出: 6

回复列表 (共9个回复)

沙发

deflng a-z
input a
Ladd ltrim$(str$(a))

sub Ladd(b$)
for i=1 to val(left$(b$,1))\2
    c$=chr$(48+i)+b$
    print c$
    Ladd c$
next
end sub

板凳

10以内的数可以测试成功,但超过10就不行!应该如何改一改呢?

3 楼

......

4 楼

deflng a-z
input a
Ladd ltrim$(str$(a)),a

sub Ladd(b$,x)
for i=1 to x\2
    c$=ltrim$(str$(i))+b$
    print c$
    Ladd c$,i
next
end sub

5 楼

declare ladd(l!,k!)
input l
k=0
ladd l,k
? k
sub ladd(l,k)
for i = 1 to int(l/2)
ladd l,k
k=k+1
next


rem.....n 久没编程了 游戏得堕落了
end sub

6 楼

刚看到这道题目吓死我了.....
题目不难 按我的理解就难了.....:

我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n≤1000), 然后对此自然数按照如下方法进行处理:
1.不作任何处理;
2.在它的左边加上一个自然数,但该自然数不能超过n的一半;
3.加上数后,继续按此规则进行处理,直到不能再加自然数为止。

[样例]: 输入: 6
满足条件的数为(此部分不必输出)

16
116
1116
126
136
26
216
36
316
输出:11

7 楼

刚看到这道题目吓死我了.....
题目不难 按我的理解就难了.....:

我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n≤1000), 然后对此自然数按照如下方法进行处理:
1.不作任何处理;
2.在它的左边加上一个自然数,但该自然数不能超过n的一半;
3.加上数后,继续按此规则进行处理,直到不能再加自然数为止。

[样例]: 输入: 6
满足条件的数为(此部分不必输出)

16
116
1116
126
136
26
216
36
316
输出:11

8 楼

输出是只要输出方案个数还是输出所有方案?

9 楼

我早就做出来了,希望加多一点分.
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

我来回复

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