posts - 70,comments - 80,trackbacks - 0

十三、        请你设计一个程序,对于从键盘输入的任意一个四位数,把它表示成连续自然数之和的形式。例如: 1998=498+499+500+501 。请你找出所有可能的组合。
答:o_s13.JPG
源程序:
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z As Integer, s As String
x = CInt(Trim(Text1.Text))
If x < 1000 Or x > 9999 Then
    MsgBox "您所输入的不是四位数!请重新输入!"
    Text1.Text = ""
    Text1.SetFocus
    Exit Sub
End If
y = x \ 4
z = x Mod 4
s = ""
If z = 2 Then
    s = y - 1 & "  " & y & "  " & y + 1 & "  " & y + 2
Else
    s = "找不到连续的四个自然数!"
End If
Text2 = s
End Sub

Private Sub Command2_Click()
Dim i As Integer, j As Integer, m As Integer, n As Integer
j = 0
For i = 1000 To 9999
    m = i \ 4: n = i Mod 4
    If n = 2 Then
        j = j + 1
        Text3 = Text3.Text & i & "  "
        If j Mod 10 = 0 Then Text3.Text = Text3.Text & vbCrLf
    End If
Next i
End Sub

十四、       寻找平方数对
请你设计一个程序,对于从键盘输入的自然数N,找出所有小于N且满足下述条件的数对(XY):X+YX-Y都是完全平方数。例如:当X=10Y=6时,有10+6=16=42     10-6 =4=22
答:r_s14.JPG
源程序:
Private Sub Command1_Click()
Dim i As Long, j As Long, n As Long
n = Int(Trim(Text1.Text))
List1.Clear
List1.AddItem "符合条件的平方数对有:"
For i = n - 1 To 2 Step -1
    For j = i - 1 To 1 Step -1
        If pfs(i + j) And pfs(i - j) Then List1.AddItem "(" & i & "," & j & ")"
    Next j
Next i
End Sub
Private Function pfs(ByVal x As Long) As Boolean
If Int(Sqr(x)) ^ 2 = x Then
    pfs = True
Else
    pfs = False
End If
End Function

十五、       请你设计程序,对于给定的自然数N确定满足下述关系的最小数SS可以表示为两对不同的自然数的n次方幂之和。即找出最小数S,使得:S=an+bn=cn+dn
这里的abcd都是自然数,切acbd
例如,当n=2时,有
S=50=12+72=52+52
n=3时,有S=1729=13+123=93+103
答:r_s15.JPG
源程序:
Private Sub Command1_Click()
Dim i As Long, j As Long, n As Integer, l As Integer, s As Long, t As Long
s = 1
n = Int(Trim(Text1.Text))
Text2.Text = ""
Do
    l = 0
    t = findmax(s, n)
    For i = 1 To t
        For j = i To t
            If i ^ n + j ^ n = s Then l = l + 1
            If l = 2 Then Text2.Text = "最小数S为:" & s: Exit Do
        Next j
    Next i
    s = s + 1
Loop Until (l = 2)
End Sub
Private Function findmax(ByVal x As Long, ByVal y As Long)
Dim i As Long
For i = 1 To x
    If i ^ y > x Then Exit For
Next i
findmax = i - 1
End Function
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
End Sub

十六、豆子下落问题
如图所示一个容器,有1000粒豆子从入口一个一个地落下,通过六层隔板落入下面7个格子,豆子经过隔板向左右两个方向的机会相等,编一个程序计算每个格子中豆子的数目。
答:
 非常抱歉,下载题目时没有注意到图,故无法按实际情况做出一个明确的答案,敬请原谅!读者可以自行发挥想象!

posted on 2006-10-07 13:50 木子李 阅读(449) 评论(0)  编辑 收藏 引用 网摘 所属分类: Visual Basic 课堂

只有注册用户登录后才能发表评论。