水仙花數(shù)的幾種寫法

什么是水仙花數(shù)?

所謂的水仙花數(shù)是指:一個(gè) n 位數(shù) ( n≥3 ),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。
就拿153來(lái)說(shuō)


image.png

滿足上面的條件就是水仙花數(shù),否則就不是。在編寫代碼的過(guò)程中,重點(diǎn)是如何分解,如何表達(dá)出數(shù)字中的個(gè)位,十位,百位等。

第一種
在這里定義三個(gè)整型變量,這里的n代表數(shù)字的值,用a,b,c來(lái)分別表示該數(shù)n的個(gè)位,十位,百位。則可得:

   a = n%10; // 分解出個(gè)位
    b = n/10%10; // 分解出十位 
    c = n/100; // 分解出百位

例題:在這里我編程實(shí)現(xiàn)求100~1000中的所有水仙花數(shù)。

var a, b, c;
   for (i = 100; i < 1000; i++) {
       var a = parseInt(i % 10); //個(gè)位數(shù)
       var b = parseInt((i / 10) % 10); //十位數(shù)
       var c = parseInt(i / 100); //百位數(shù)
       if (a * a * a + b * b * b + c * c * c == i) {
         document.write(i + "是水仙花數(shù)" + "<br/>");
       }
     }

第二種寫法

  for(var b = 1; b <= 9; b++){      //百位數(shù)
          for(var s = 0; s <= 9 ; s++){    //十位數(shù)
              for(var g=0; g<=9; g++){       //個(gè)位數(shù)
                 if(b * b * b + s * s * s + g * g * g == g*1+s*10+b*100 ){
                    console.log(b,s,g);
                 }
              }
          }
      }

編譯執(zhí)行該代碼,便可得出100~1000中所有的水仙花數(shù)分別為:


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容