十三、
请你设计一个程序,对于从键盘输入的任意一个四位数,把它表示成连续自然数之和的形式。例如:
1998=498+499+500+501
。请你找出所有可能的组合。
答:
源程序:
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且满足下述条件的数对(X,Y):X+Y和X-Y都是完全平方数。例如:当X=10,Y=6时,有10+6=16=42 10-6 =4=22
答:
源程序:
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确定满足下述关系的最小数S。S可以表示为两对不同的自然数的n次方幂之和。即找出最小数S,使得:S=an+bn=cn+dn
这里的a,b,c,d都是自然数,切a≠c,b≠d
例如,当n=2时,有S=50=12+72=52+52
当n=3时,有S=1729=13+123=93+103
答:
源程序:
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 课堂