【基础入门题】Golang 007. 求所有三位的水仙花数
水仙花数定义:指一个正整数的各位数字的立方和等于其本身。
求出所有三位的水仙花数,即在范围(100,1000)内的水仙花数。
————————————————————————————
方法一:
package main import "fmt" func CubicSum(n int) int { i := 0 for n/10 > 0 { j := n % 10 i += j * j * j n /= 10 } return i + n*n*n } func main() { count := 0 for i := 100; i < 1000; i++ { if CubicSum(i) == i { fmt.Println(i) count++ } } fmt.Printf("三位的水仙花数共有:%d个。\n", count) }
方法二:
package main import "fmt" func isNarcissus(n int) bool { i, j := 0, n for j/10 > 0 { k := j % 10 i += k * k * k j /= 10 } return i+j*j*j == n } func main() { count := 0 for i := 100; i < 1000; i++ { if isNarcissus(i) { fmt.Println(i) count++ } } fmt.Printf("三位的水仙花数共有:%d个。\n", count) }
运行结果:
153
370
371
407
三位的水仙花数共有:4个。