题解 | #水仙花数#

水仙花数

https://www.nowcoder.com/practice/dc943274e8254a9eb074298fb2084703

package main

import (
    "fmt"
)

func main() {
    a := 0
    b := 0
    for {
	  	// 读取空格分隔的两个数
        n, _ := fmt.Scan(&a, &b)
        if n == 0 {
            break
        }
		// 标记 a 和 b 区间内是否存在水仙花数
        flag := false
        for i := a; i <= b; i++ {
            if flower(i) {
                flag = true
                fmt.Printf("%d ", i)
            }
        }
		// 如果存在,打印换行
        if flag {
            fmt.Println()
        } else {
            fmt.Println("no")
        }
    }   
}

func flower(num int) bool {
    temp := num
    sum := 0
    for temp > 0 {
        sum += (temp%10)*(temp%10)*(temp%10)
        temp /= 10
    }
    return sum == num
}

全部评论

相关推荐

榕城小榕树:1200单休,我去干点啥别的不好
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务