在Visual Basic(VB)中,可以通过以下步骤编写一个程序来找出所有的水仙花数:
初始化变量
定义一个数组列表来存储找到的水仙花数。
初始化一个循环变量,从100开始到999结束。
循环遍历
在循环中,取出每个三位数的个位、十位和百位数字。
将这些数字分别进行三次方运算,并求和。
判断水仙花数
如果求和的结果等于原数字,则该数字是水仙花数,将其添加到数组列表中。
输出结果
循环结束后,输出数组列表中的所有水仙花数。
```vb
' 定义一个数组列表来存储水仙花数
Dim narcissisticNumbers As New List(Of Integer)
' 循环遍历100到999之间的所有数字
For i As Integer = 100 To 999
' 取出当前数字的个位、十位和百位
Dim hundreds As Integer = i \ 100
Dim tens As Integer = (i \ 10) Mod 10
Dim ones As Integer = i Mod 10
' 计算每个位数的三次方并求和
Dim sumOfPowers As Integer = hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones
' 判断是否为水仙花数
If sumOfPowers = i Then
' 如果是水仙花数,则添加到数组列表中
narcissisticNumbers.Add(i)
End If
Next
' 输出结果
Console.WriteLine("水仙花数有:")
For Each num As Integer In narcissisticNumbers
Console.WriteLine(num)
Next
```
代码解释:
初始化数组列表
```vb
Dim narcissisticNumbers As New List(Of Integer)
```
这行代码创建了一个名为`narcissisticNumbers`的列表,用于存储找到的水仙花数。
循环遍历
```vb
For i As Integer = 100 To 999
```
这行代码从100开始到999结束进行循环。
取出数字的各个位数
```vb
Dim hundreds As Integer = i \ 100
Dim tens As Integer = (i \ 10) Mod 10
Dim ones As Integer = i Mod 10
```
这三行代码分别取出数字的百位、十位和个位。
计算三次方和求和
```vb
Dim sumOfPowers As Integer = hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones
```
这行代码计算每个位数的三次方并求和。
判断是否为水仙花数
```vb
If sumOfPowers = i Then
narcissisticNumbers.Add(i)
End If
```
如果求和的结果等于原数字,则该数字是水仙花数,将其添加到列表中。
输出结果
```vb
Console.WriteLine("水仙花数有:")
For Each num As Integer In narcissisticNumbers
Console.WriteLine(num)
Next
```
这部分代码输出数组列表中的所有水仙花数。
通过以上步骤和代码,你可以在VB中编写一个程序来找出所有的水仙花数。