VB 求水仙花数
改为
Private Sub Command1_Click()
Dim x%, y%, z%, s%, i%, sum As Single
Print "水仙花数为:"
sum = 0
i = 0
For x = 1 To 9
For y = 0 To 9
For z = 0 To 9
s = x * 100 + y * 10 + z
If s = x ^ 3 + y ^ 3 + z ^ 3 Then
sum = sum + s
i = i + 1
Print s,
If i Mod 3 = 0 Then
Print
End If
End If
Next z
Next y
Next x
Print
Print "平均数为" & sum / i
End Sub
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
可以运用将一个 For...Next 循环放置在另一个 For...Next 循环中,组成嵌套循环来解决水仙花求解问题。
以3位10进制数100-999为例,代码如下:
Private Sub Command1_Click() Dim i As Long, j As Long, k As Long Dim s As Long For i = 1 To 9 For j = 0 To 9 For k = 0 To 9 s = i * 100 + j * 10 + k If ((i ^ 3) + (j ^ 3) + (k ^ 3)) = s Then Debug.Print s End If Next k Next j Next iEnd Sub
可以
Private Sub Form_Click()
Dim a1 As Integer, b1 As Integer, c1 As Integer
Dim a#, b#, c#, x#, y#
a = 123456789
b = 1234567890
c = 1234567890
x = b
y = c
Do While a > 0
a1 = a Mod 10
a = a \ 10
Do While b > 0
b1 = b Mod 10
b = b \ 10
Do While c > 0
c1 = c Mod 10
c = c \ 10
s = a1 * 100 + b1 * 10 + c1
If s = a1 ^ 3 + b1 ^ 3 + c1 ^ 3 Then
Print s
Else
End If
Loop
c = y
Loop
b = x
Loop
End Sub
你的最内层循环把C赋值为0后根本就没有把C恢复,
以后每次进行到DO WHILE C>0 时直接就跳出去了.
所以你的最内层IFTHEN 只判断了10个数.即909 到900
解决方法:
把B=1234567890 放在 a = a \10 后面一行
把C=1234567890 放在 b = b \10 后面一行
急求vb水仙花数
比如 i = 457,则 b = (i - a * 100) \\ 10 = 57。因此,我们可以得出结论,b 的值应该是 (i - a * 100) \\ 10。在下面的 VB 代码中,当用户点击窗体时,程序会遍历从 100 到 999 的所有正整数,并检查它们是否为水仙花数。如果是,它会打印出来。```vb Private Sub Form_Click(...
用vb求1到1000水仙花数的编程方法
Dim a As Integer, b As Integer, c As Integer Print "100到999所有水仙花数(也叫梅花数):";For i = 100 To 999 a = i \\ 100 '取百位数 b = i \\10 Mod 10 '或 b = i Mod 100 \\10 取十位数 c = i Mod 10 ‘取个位数 s = a ^ 3 + b ^ 3 + c ^ 3 ...
如何求出100至999之间所有的水仙花数?
- 十位数b:b = INT((i - 100 * a) \/ 10)- 个位数c:c = i - INT(i \/ 10) * 10 4. 程序实现:使用FOR循环,从100遍历到999,对每个数应用上述分离方法,并验证其是否为“水仙花数”。如果是,则输出该数。5. 输出结果:153, 370, 371, 407。这些数都是100至999之间的“水仙花...
VB求水仙花数
For i = 1 To 9 For j = 1 To 9 For k = 1 To 9 a = i ^ 3 + j ^ 3 + k ^ 3 b = 100 * i + 10 * j + k If a = b Then Print a endif ‘你少写了一个end if Next k Next j Next i
vb题:求四位数以内的水仙花的个数
水仙花数是指 某数的百位数的立方+十位数的立方+个位数的立方=某数本身。代码如下,后面一段是解释 dim a as integer,b as integer,c as integer,i as integer,s as integer s=0 for i = 100 to 500 当然0本身也是。a =i \\100 b= (i-a*100)\\10 c= i - a *100-b*10 if a...
vb计算100-999有多少个水仙花数怎么写程序,用for和if语句的
Next c, b, a End Sub <\/pre> 通过上述程序,可以找出100至999之间的所有水仙花数。这样的程序可以帮助初学者理解循环和条件语句的基本用法,同时也能加深对水仙花数概念的理解。水仙花数的寻找过程不仅展示了编程语言的逻辑处理能力,还能够锻炼程序员的逻辑思维能力。在这个例子中,通过嵌套循环和条件...
vb求水仙花数的程序
c = s - a *100 - b * 10
VB 算水仙花数 100-999
Click()Dim x As Integer, a As Integer, b As Integer, c As Integer For x = 100 To 999 a = Int(x \/ 100)b = (Int(x \/ 10)) Mod 10 c = x Mod 10 If a ^ 3 + b ^ 3 + c ^ 3 = x Then Print "水仙花数"Print x End If Next x End Sub 这样就OK了 ...
水仙花数的流程图
i\/100)。(2)十位数字b:b=INT((i-100*a)\/10)。(3)个位数字c:c=i-INT(i\/10)*10。4. 程序实现:使用FOR循环遍历100至999之间的每个数,按照上述方法分离出百位数、十位数和个位数,然后判断该数是否满足水仙花数的条件。如果满足,则输出该数。5. 输出结果:153、370、371、407。
VB 求水仙花数
可以 Private Sub Form_Click()Dim a1 As Integer, b1 As Integer, c1 As Integer Dim a#, b#, c#, x#, y a = 123456789 b = 1234567890 c = 1234567890 x = b y = c Do While a > 0 a1 = a Mod 10 a = a \\ 10 Do While b > 0 b1 = b Mod 10 b = b \\ 10 Do...