zl程序教程

您现在的位置是:首页 >  工具

当前栏目

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

Golang 所有 007 水仙花 三位
2023-09-14 09:01:29 时间

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