回 帖 发 新 帖 刷新版面

主题:请教大侠,帮忙解4道题,谢谢啦~~~

1、亲和数:所谓亲和数是指两个自然数,如果每一个数是另一个数的真因子(除本身外的所有整数因子)的和,例220的真因子是1、2、4、5、10、11、20、22、44、55、110,其和为284,而284的真因子是1、3、4、71、142,其和是220,所以220和284是一对亲和数。求[M,N]之间的亲和数。

2、 随机产生的N个数[10,999],将其中重复的数删得只剩下一个。
3、 将1—9这九个数字分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。

4、 打印如下图示例N行的蛇形矩阵。
1    3    4    10    11
2    5    9    12    19
6    8    13    18    20
7    14    17    21    24
15    16    22    23    25









回复列表 (共8个回复)

沙发

题目嘛,当然要自己去动手做才行的,
靠别人终归是不可靠的.
要不,你来想你来写我再来帮?
为什么? 
没有你,我可动不了脑子.

板凳

汗,就是为了交差的~~~

3 楼

1.
CLS
INPUT "M,N="; M, N
DIM A(N - M + 1, 2)
L = 0
FOR I = M TO N
  S = 0
  FOR J = 1 TO I - 1
    IF I MOD J = 0 THEN S = S + J
  NEXT J
  IF S >= M AND S <= N AND S <> I THEN
    FOR K = 1 TO L
      IF (A(K, 1) = I AND A(K, 2) = S) OR (A(K, 1) = S AND A(K, 2) = I) THEN GOTO 1
    NEXT K
    L = L + 1: A(L, 1) = I: A(L, 2) = S: PRINT I, S
  END IF
1 NEXT I

4 楼

1.    
    Cls
    Input "n,m="; n, m
    For x = n To m
        s1 = 0
        s2 = 0
        For t = 1 To x - 1
            If x Mod t = 0 Then
                s1 = s1 + t
            End If
        Next t
        If s1 >= n And s1 <= m Then
            For t = 1 To s1 - 1
                If s1 Mod t = 0 Then
                    s2 = s2 + t
                End If
            Next t
            If s2 = x And x < s1 Then Print x; s1
        End If
    Next x

5 楼

2.    
    Cls
    Input "Length="; Length
    Dim n() As Integer, y() As Integer, s() As Integer
    t = 0
    For i = 1 To Length
        If t = Length Then Exit For
        t = t + 1
        ReDim Preserve n(1 To t)
        n(t) = Int(Rnd * 20 + 1)
        ReDim Preserve y(1 To i)
        y(i) = n(t)
        For j = 1 To t - 1
            If n(t) = n(j) Then
                i = i - 1
                Exit For
            End If
        Next j
    Next i
    For j = 1 To t
        Print n(j);
    Next j
    Print
    For t = 1 To i - 1
        Print y(t);
    Next t

6 楼

简单,看我的
第4题:蛇型方阵
程序清单:
CLS
INPUT N
DIM A(N,N)
FOR I=1 TO N*2-1
 IF I <=N THEN 
  IF I MOD 2<>0 THEN X=0 ELSE X=I+1
 ELSE
  IF I MOD 2=0 THEN X=X+1
 END IF
 FOR J=1 TO N-ABD(N-I)
  IF I MOD 2=0 THEN X=X-1 ELSE X=X+1
  K=K+1
  A(X,I+1-X)=K
NEXT J,I
FOR I=1 TO N
FOR J=1 TO N
 PRINT USING"###";A(I,J);
NEXT J
PRINT
NEXT I
END
还不快点谢谢我?

7 楼

1.
CLS
INPUT "M,N="; M, N
DIM A(N - M + 1, 2)
L = 0
FOR I = M TO N
  S = 0
  FOR J = 1 TO I - 1
    IF I MOD J = 0 THEN S = S + J
  NEXT J
  IF S >= M AND S <= N AND S <> I THEN
    FOR K = 1 TO L
      IF (A(K, 1) = I AND A(K, 2) = S) OR (A(K, 1) = S AND A(K, 2) = I) THEN GOTO 1
    NEXT K
    L = L + 1: A(L, 1) = I: A(L, 2) = S: PRINT I, S
  END IF
1 NEXT I
2.Cls
    Input "Length="; Length
    Dim n() As Integer, y() As Integer, s() As Integer
    t = 0
    For i = 1 To Length
        If t = Length Then Exit For
        t = t + 1
        ReDim Preserve n(1 To t)
        n(t) = Int(Rnd * 20 + 1)
        ReDim Preserve y(1 To i)
        y(i) = n(t)
        For j = 1 To t - 1
            If n(t) = n(j) Then
                i = i - 1
                Exit For
            End If
        Next j
    Next i
    For j = 1 To t
        Print n(j);
    Next j
    Print
    For t = 1 To i - 1
        Print y(t);
    Next t
3.CLS
FOR I = 123 TO 329
A = I: B = A * 2: C = A * 3
X$ = LTRIM$(STR$(A)) + LTRIM$(STR$(B)) + LTRIM$(STR$(C))
FOR K = 2 TO 9: FOR J = 1 TO K - 1
IF MID$(X$, J, 1) = "0" OR MID$(X$, J, 1) = MID$(X$, K, 1) THEN 1
NEXT J, K
PRINT A; B; C
1 NEXT I
END
4.CLS
INPUT N
DIM A(N,N)
FOR I=1 TO N*2-1
 IF I <=N THEN 
  IF I MOD 2<>0 THEN X=0 ELSE X=I+1
 ELSE
  IF I MOD 2=0 THEN X=X+1
 END IF
 FOR J=1 TO N-ABD(N-I)
  IF I MOD 2=0 THEN X=X-1 ELSE X=X+1
  K=K+1
  A(X,I+1-X)=K
NEXT J,I
FOR I=1 TO N
FOR J=1 TO N
 PRINT USING"###";A(I,J);
NEXT J
PRINT
NEXT I
END
搞定了!真轻松!!!

8 楼


CLS
INPUT N
DIM A(N, N)
FOR I = 1 TO N * 2 - 1
  IF I <= N THEN
    IF I MOD 2 <> 0 THEN X = 0 ELSE X = I + 1
  ELSE
    IF I MOD 2 = 0 THEN X = X + 1
  END IF
  FOR J = 1 TO N - ABS(N - I)
    IF I MOD 2 = 0 THEN X = X - 1 ELSE X = X + 1
    K = K + 1
    A(X, I + 1 - X) = K
NEXT J, I
FOR I = 1 TO N
  FOR J = 1 TO N
    PRINT USING "###"; A(I, J);
  NEXT J
  PRINT
NEXT I
END
                     [em9]

我来回复

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