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个。



目录
相关文章
|
6月前
|
C语言
C语言---自幂数(“水仙花数”)
C语言---自幂数(“水仙花数”)
79 0
|
6月前
|
Go
golang力扣leetcode 668.乘法表中第k小的数
golang力扣leetcode 668.乘法表中第k小的数
36 0
|
6月前
|
Java Go C++
Golang每日一练(leetDay0085) 2的幂、数字 1 的个数
Golang每日一练(leetDay0085) 2的幂、数字 1 的个数
49 0
Golang每日一练(leetDay0085) 2的幂、数字 1 的个数
|
6月前
|
Java Go C++
Golang每日一练(leetDay0090) 运算优先级、有效字母异位词
Golang每日一练(leetDay0090) 运算优先级、有效字母异位词
26 0
Golang每日一练(leetDay0090) 运算优先级、有效字母异位词
|
6月前
|
Java Go C++
Golang每日一练(leetDay0109) 拼接最大数、区间和的个数
Golang每日一练(leetDay0109) 拼接最大数、区间和的个数
53 0
Golang每日一练(leetDay0109) 拼接最大数、区间和的个数
|
6月前
|
Java Go C++
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
37 0
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
|
6月前
|
Java Go C++
Golang每日一练(leetDay0093) 丢失的数字、整数转换英文表示
Golang每日一练(leetDay0093) 丢失的数字、整数转换英文表示
37 0
Golang每日一练(leetDay0093) 丢失的数字、整数转换英文表示
|
6月前
|
Python Go 存储
Golang每日一练(leetDay0022) 最小路径和、有效数字、加一
Golang每日一练(leetDay0022) 最小路径和、有效数字、加一
32 0
Golang每日一练(leetDay0022) 最小路径和、有效数字、加一
|
6月前
|
Java Go C++
Golang每日一练(leetDay0102) 数据流中位数、删除无效括号、累加数
Golang每日一练(leetDay0102) 数据流中位数、删除无效括号、累加数
55 0
Golang每日一练(leetDay0102) 数据流中位数、删除无效括号、累加数
|
6月前
|
Python Go 算法
Golang每日一练(leetDay0023) 二进制求和、文本左右对齐、x的平方根
Golang每日一练(leetDay0023) 二进制求和、文本左右对齐、x的平方根
53 0
Golang每日一练(leetDay0023) 二进制求和、文本左右对齐、x的平方根