什么是水仙花数?
水仙花数:三位数:[100,999]
每个位上的数字的立方和,刚好等于该数字本身,那么就叫水仙花数
比如:153
111 + 555 + 333 = 1+125+27=153
思考:如何分别取出三位数的百位、十位、个位?
以268为例:
(1)取出百位:
268 / 100 = 2
(2)取出个位:
268 % 10 = 8
(3)取出十位(两种方法):
268 --> 268 / 10 % 10 = 6
268 --> 268 % 100 / 10 = 6
Go实现求水仙花数的两种方式
第一种:
package main
import (
"fmt"
"math"
)
func main() {
for i := 100; i < 1000; i++ {
x := i / 100 //百位
y := i / 10 % 10 //十位
z := i % 10 //个位
if math.Pow(float64(x), 3)+math.Pow(float64(y), 3)+math.Pow(float64(z), 3) == float64(i) {
fmt.Println(i)
}
}
}
第二种:
package main
import "fmt"
func main() {
for a := 1; a < 10; a++ {
for b := 0; b < 10; b++ {
for c := 0; c < 10; c++ {
n := a*100 + b*10 + c*1
if a*a*a+b*b*b+c*c*c == n {
fmt.Println(n)
}
}
}
}
}
最终结果
153
370
371
407
原文链接: https://www.cnblogs.com/opsprobe/p/13048051.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/198369
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!