主题:求助:关于插数的问题
gulang5926
[专家分:0] 发布于 2006-10-30 08:48:00
写出两个1,然后在它们中间插入2,成121;下一步是在上面数中每两个相邻的和数为3的数之间插入3,成为13231;再下一步又在上面数中任意两个相邻的和数为4的数中插入4,成为1432341;由键盘输入N,求出用上面方式构造出来的序列,其最后插入的数是N。
假设N不超过10,输入N,输出每一次插入时的运算结果。
如 输入 4
则输出 121
13231
1432341
回复列表 (共6个回复)
沙发
老大徒伤悲 [专家分:29120] 发布于 2006-10-30 14:12:00
13231,插数后难道不是143525341?
板凳
gulang4533 [专家分:30] 发布于 2006-10-30 14:41:00
因为插入的是4,所以是在相邻的两数的和为4之间插入4,而不是5
3 楼
老大徒伤悲 [专家分:29120] 发布于 2006-10-30 20:50:00
奥,原来不是经过n次插值,而是插值到n。
4 楼
老大徒伤悲 [专家分:29120] 发布于 2006-10-30 20:51:00
今天晚了,我明天作你的两个题目来看看
5 楼
老大徒伤悲 [专家分:29120] 发布于 2006-10-31 13:47:00
Do
n = Val(InputBox(""))
Loop Until n > 1 And n < 10
s$ = "11"
For i = 2 To n
For j = Len(s$) - 1 To 1 Step -1
If Val(Mid(s$, j, 1)) + Val(Mid(s$, j + 1, 1)) = i Then
s$ = Left(s$, j) & Trim(Str(i)) & Right(s$, Len(s$) - j)
End If
Next j, i
Print s$
请楼主自己修改诸如str等函数,我用的是vb不好意思了。
但算法是没有问题的了。
6 楼
gulang5926 [专家分:0] 发布于 2006-10-31 17:41:00
老大,谢了,我试试,有问题还要请教哦![em11]
我来回复