Golang 007. 求所有三位的水仙花数

x33g5p2x  于2021-12-30 转载在 Go  
字(0.7k)|赞(0)|评价(0)|浏览(147)

【基础入门题】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个。

欢迎加入CSDN社区! 

https://bbs.csdn.net/forums/PythonTogether

相关文章

微信公众号

最新文章

更多