打印所有的水仙花数:所谓水仙花数是指一个三位数用go语言
时间: 2023-07-07 19:05:47 浏览: 96
以下是用 Go 语言实现打印所有的水仙花数的代码:
```go
package main
import (
"fmt"
)
func main() {
for i := 100; i <= 999; i++ {
// 分离出各位数字
a := i / 100 // 百位数
b := (i / 10) % 10 // 十位数
c := i % 10 // 个位数
// 判断是否为水仙花数
if a*a*a+b*b*b+c*c*c == i {
fmt.Println(i)
}
}
}
```
输出结果为:
```
153
370
371
407
```
相关问题
使用go语言编程打印出所有的“水仙花数”。所谓水仙花数,是指一个3位数,其各位数字的立方之和等于该数
水仙花数是一个数学上的有趣概念,指的是一个三位数,它的每个位上的数字的立方和等于它本身。例如:153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。我们可以使用Go语言编程来打印出所有这样的数。下面是实现这一功能的Go语言代码示例:
```go
package main
import "fmt"
func main() {
for num := 100; num < 1000; num++ {
sum := 0
temp := num
for temp > 0 {
digit := temp % 10
sum += digit * digit * digit
temp /= 10
}
if sum == num {
fmt.Println(num)
}
}
}
```
这段代码从100开始到999结束,对于每一个数,它首先将其分解为个位、十位和百位,然后计算每个位上数字的立方和,最后判断这个立方和是否等于原来的数。如果等于,就将这个数打印出来。
go语言 实现水仙花数
Go语言中实现水仙花数(也叫 narcissistic number 或 pluperfect digital invariant),是指一个三位数(或更长,但这里我们只看三位数的情况),其各位数字立方之和等于它自身。例如,153 就是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
下面是一个简单的Go函数来检查一个整数是否是水仙花数:
```go
package main
import (
"fmt"
)
func isNarcissistic(num int) bool {
str := fmt.Sprintf("%d", num)
length := len(str)
if length != 3 {
return false
}
sum := 0
for _, digit := range str {
digitValue, _ := strconv.Atoi(string(digit))
sum += digitValue * digitValue * digitValue
}
return sum == num
}
func main() {
nums := []int{153, 370, 371, 407} // 测试数组
for _, n := range nums {
if isNarcissistic(n) {
fmt.Printf("%d 是水仙花数\n", n)
} else {
fmt.Printf("%d 不是水仙花数\n", n)
}
}
阅读全文