Go语言求水仙花数,for循环
什么是水仙花数?
水仙花数:三位数:[100,999]
每个位上的数字的立方和,刚好等于该数字本身,那么就叫水仙花数
比如:153
1*1*1 + 5*5*5 + 3*3*3 = 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
- 上一篇 »PHP初入,for循环使用
- 下一篇 »初入PHP,,for循环~水仙花数