主题:求助MOZ
hhuxin
[专家分:0] 发布于 2007-02-01 15:44:00
上面你帮我解答的题真的谢谢你了
下面还有问题你能帮我想想吗
回文数列
[问题描述]
对一个正整数K,求出K的所有拆分,并统计输出其中回文数列的个数。
所谓回文数列是指该数列中的所有数字,从左向右或从右向左看都相同。
例如:
K=4时,有如下的拆分:
4=1+1+1+1 (回文数列1)
=1+1+2
=1+2+1 (回文数列2)
=2+1+1
=2+2 (回文数列3)
=1+3
=3+1
输入] 一个正整数K(1<=K<=26)
[输出] 满足条件的回文数列的个数
[输入样例] 4
[输出样例] 3
第一题 回形矩阵
[问题描述]
从键盘输入正整数n,i,j,( l <= i , j <= n <=20 ),
然后计算并显示n阶回行形的第i行第j列元素的值。(下图给出的是7阶回形矩阵)。
[输入输出]
输入:每行为三个整数n, i 和j。
表示要计算并显示n阶回形矩阵的第i行第j列的
元素值。
输出:每行只有一个正整数,即根据对应的输入数据计算
出的元素值。
[样例]
输入:
7,3,5
输出:
3
如图:
8 6 5 7 6 2 1
9 7 7 4 8 5 3
9 0 6 8 3 9 4
0 8 1 5 9 2 0
6 1 7 2 4 0 1
7 5 2 6 3 3 1
9 8 4 3 5 4 2
回复列表 (共7个回复)
沙发
moz [专家分:37620] 发布于 2007-02-01 18:40:00
很抱歉,有关作业请看看 《Moz 的作业本 》一贴参考一下。
其他问题我暂时没有能力向你解答,请谅解。
月终事务多,实在无法抽空去动脑子,推后有机会再来看能不能出点力吧。
板凳
hhuxin [专家分:0] 发布于 2007-02-06 14:48:00
谁能帮帮忙啊
3 楼
moz [专家分:37620] 发布于 2007-02-06 17:46:00
一题一题来,你后面的是第一题,那就先说第零题吧。
我觉得一个4也合乎回文数的要求,所以分成回文数的结果应该是4
这样子的算来,如果 1 < K < 20 的话
回文数=2^(K-2)*3
当 K > 20 的话,需要考虑和大于9的情况,那会比较麻烦,
还有比较笨的办法
4 楼
moz [专家分:37620] 发布于 2007-02-06 18:24:00
不算4本身.
print kkk("",4)
Function kkk(a$, n)
If a$ = "" Then
n = n - (n Mod 2)
a$ = String$(n \ 2, "1")
End If
s = 0
l = Len(a$)
If l = 1 Then
s = s + 1
If a$ < "5" And Val(a$) * 2 < n Then s = s + 1
Else
s = s + kkk(Mid$(a$, 2), n)
m = Val(Mid$(a$, 1, 1)) + Val(Mid$(a$, 2, 1))
If m < 10 Then
s = s + kkk(Chr$(48 + m) + Mid$(a$, 3), n)
End If
End If
kkk = s
End Function
5 楼
moz [专家分:37620] 发布于 2007-02-06 21:02:00
轮到第一题了.乱七八糟的东西还是用数组的好.
print kkk(7,3,5)
Function kkk(n, i, j)
Dim a(n, n)
x = 1
y = n
f = -1
For z = 1 To n * n
a(x, y) = z Mod 10
x = x + f
y = y + f
If y < 1 Then
y = 1
x = x + 2
f = 1
End If
If x < 1 Then
x = 1
f = 1
End If
If x > n Then
x = n
y = y - 2
f = -1
End If
If y > n Then
y = n
f = -1
End If
Next
kkk = a(i, j)
End Function
6 楼
Matodied [专家分:7560] 发布于 2007-04-28 22:00:00
看来MOZ的名气不小嘛!你出的题也太简单了.
第0题:
DECLARE SUB pdhw ()
CLS
DIM SHARED t, total
INPUT n
DIM SHARED a(0 TO n)
total = 0: t = 1: s = 0
DO
a(t) = a(t) + 1: s = s + a(t)
IF s >= n THEN
IF s = n THEN pdhw
s = s - a(t): t = t - 1: s = s - a(t)
ELSE
t = t + 1: a(t) = 0
END IF
LOOP UNTIL t = 0
PRINT "Total:", total
END
SUB pdhw
FOR i = 1 TO INT(t / 2)
IF a(i) <> a(t + 1 - i) THEN f = 0: EXIT FOR ELSE f = 1
NEXT i
IF f = 1 THEN total = total + 1
END SUB
7 楼
Matodied [专家分:7560] 发布于 2007-04-28 22:01:00
第1题:
不是回字形矩阵,QB里把你的矩阵叫蛇形矩阵.
CLS
INPUT n, i, j
DIM a(n, n)
xx = 1: yy = -1
FOR k = 1 TO n * n
x = x + xx: y = y + yy
IF x < 1 OR x > n OR y < 1 OR y > n THEN SWAP xx, yy
IF x > n THEN x = n: y = y + 2
IF y > n THEN y = n: x = x + 2
IF x < 1 THEN x = 1
IF y < 1 THEN y = 1
a(x, y) = k MOD 10
NEXT k
PRINT a(i, n + 1 - j)
END
我来回复