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

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

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



目录
相关文章
|
8月前
|
C语言
C语言---自幂数(“水仙花数”)
C语言---自幂数(“水仙花数”)
120 0
|
8月前
|
Go
golang力扣leetcode 300.最长递增子序列
golang力扣leetcode 300.最长递增子序列
56 1
|
8月前
|
Go
golang力扣leetcode 668.乘法表中第k小的数
golang力扣leetcode 668.乘法表中第k小的数
44 0
|
8月前
|
Go
golang力扣leetcode 287.寻找重复数
golang力扣leetcode 287.寻找重复数
54 0
|
8月前
|
Go
golang力扣leetcode 76.最小覆盖子串
golang力扣leetcode 76.最小覆盖子串
66 0
|
8月前
|
C语言
每天一道C语言编程(2^k进制数)
每天一道C语言编程(2^k进制数)
37 0
|
8月前
|
Java Go C++
Golang每日一练(leetDay0085) 2的幂、数字 1 的个数
Golang每日一练(leetDay0085) 2的幂、数字 1 的个数
55 0
Golang每日一练(leetDay0085) 2的幂、数字 1 的个数
|
8月前
|
Java Go C++
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
45 0
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
|
8月前
|
Java Go C++
Golang每日一练(leetDay0109) 拼接最大数、区间和的个数
Golang每日一练(leetDay0109) 拼接最大数、区间和的个数
76 0
Golang每日一练(leetDay0109) 拼接最大数、区间和的个数
|
8月前
|
Python Go 存储
Golang每日一练(leetDay0022) 最小路径和、有效数字、加一
Golang每日一练(leetDay0022) 最小路径和、有效数字、加一
36 0
Golang每日一练(leetDay0022) 最小路径和、有效数字、加一