当前位置:网站首页>Kotlin算法入门计算水仙花数

Kotlin算法入门计算水仙花数

2022-08-11 08:01:00 易庞宙

/* 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位 数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方 +5的三次方+3的三次方 由于100 200 300 500 400 整百数都不是水仙花可以直接排除 而且 101 为基数的也不是水仙花可以直接排除 这样排除这两个规律的直接跳过计算 */ class Narcissus {

    /*  开始运行时间1524629170834  153  370  371  407  结束运行时间1524629170838  耗时:4  因为有18个跳过计算立方的方法避免了计算步骤的冗余所以运行更快了  */  fun printNarcissus() {
        for (i in 102..998) {
            if (i % 100 == 0 || i % 101 == 0) continue  val j = i / 100
            val k = i / 10 % 10
            val z = i % 10
            if (i.toDouble() == Math.pow(j.toDouble(), 3.0) + Math.pow(k.toDouble(), 3.0) + Math.pow(z.toDouble(), 3.0))
                println(i)
        }
    }

    /**  * 传统算法运行结果  *  *  * 开始运行时间1524629049929  * 水仙花数是:153  * 水仙花数是:370  * 水仙花数是:371  * 水仙花数是:407  * 结束运行时间1524629049949  * 耗时:21  */  fun ss() {
        for (number in 100..999) {
            val gewei = number % 10
            val shiwei = number / 10 % 10
            val baiwei = number / 100 % 10
            if (gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei == number) {
                println("水仙花数是:$number")
            }
        }
    }
}
原网站

版权声明
本文为[易庞宙]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_29856589/article/details/80081020