回 帖 发 新 帖 刷新版面

主题:求助MOZ

上面你帮我解答的题真的谢谢你了

下面还有问题你能帮我想想吗

 回文数列

[问题描述] 

对一个正整数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 的作业本 》一贴参考一下。
其他问题我暂时没有能力向你解答,请谅解。
月终事务多,实在无法抽空去动脑子,推后有机会再来看能不能出点力吧。

板凳


谁能帮帮忙啊

3 楼

一题一题来,你后面的是第一题,那就先说第零题吧。
我觉得一个4也合乎回文数的要求,所以分成回文数的结果应该是4
这样子的算来,如果 1 < K < 20 的话
回文数=2^(K-2)*3

当 K > 20 的话,需要考虑和大于9的情况,那会比较麻烦,
还有比较笨的办法

4 楼

不算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 楼

轮到第一题了.乱七八糟的东西还是用数组的好.
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 楼

看来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 楼

第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

我来回复

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