Kotlin演算法入門計算水仙花數__演算法

來源:互聯網
上載者:User
/*列印出所有的“水仙花數”,所謂“水仙花數”是指一個三位元,其各位元字立方和等於該數本身。例如: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")            }        }    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.