主题:2006比赛的一道题
yubinsf
[专家分:0] 发布于 2006-10-20 10:13:00
题一 数的计数
[问题描述]
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n≤1000), 然后对此自然数按照如下方法进行处理:
1.不作任何处理;
2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3.加上数后,继续按此规则进行处理,直到不能再加自然数为止。
[样例]: 输入: 6
满足条件的数为 6 (此部分不必输出)
16
26
126
36
136
输出: 6
回复列表 (共9个回复)
沙发
moz [专家分:37620] 发布于 2006-10-20 12:19:00
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
板凳
yubinsf [专家分:0] 发布于 2006-10-23 10:22:00
10以内的数可以测试成功,但超过10就不行!应该如何改一改呢?
3 楼
mickeyice [专家分:200] 发布于 2006-10-23 11:39:00
......
4 楼
moz [专家分:37620] 发布于 2006-10-23 12:07:00
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 楼
mickeyice [专家分:200] 发布于 2006-10-23 12:23:00
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 楼
mickeyice [专家分:200] 发布于 2006-10-23 12:47:00
刚看到这道题目吓死我了.....
题目不难 按我的理解就难了.....:
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n≤1000), 然后对此自然数按照如下方法进行处理:
1.不作任何处理;
2.在它的左边加上一个自然数,但该自然数不能超过n的一半;
3.加上数后,继续按此规则进行处理,直到不能再加自然数为止。
[样例]: 输入: 6
满足条件的数为(此部分不必输出)
6
16
116
1116
126
136
26
216
36
316
输出:11
7 楼
liuweijie123 [专家分:0] 发布于 2006-10-26 17:40:00
刚看到这道题目吓死我了.....
题目不难 按我的理解就难了.....:
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n≤1000), 然后对此自然数按照如下方法进行处理:
1.不作任何处理;
2.在它的左边加上一个自然数,但该自然数不能超过n的一半;
3.加上数后,继续按此规则进行处理,直到不能再加自然数为止。
[样例]: 输入: 6
满足条件的数为(此部分不必输出)
6
16
116
1116
126
136
26
216
36
316
输出:11
8 楼
hs3180 [专家分:530] 发布于 2006-10-26 19:41:00
输出是只要输出方案个数还是输出所有方案?
9 楼
Matodied [专家分:7560] 发布于 2007-04-24 21:24: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
我来回复