1. 程式人生 > >C語言實現對水仙花數的判斷

C語言實現對水仙花數的判斷

水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等於它本身(例如:1^3 + 5^3+ 3^3 = 153)。

例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。

常見的有

三位的水仙花數共有4個:153,370,371,407;

四位的四葉玫瑰數共有3個:1634,8208,9474;

五位的五角星數共有3個:54748,92727,93084;

六位的六合數只有1個:548834;

七位的北斗七星數共有4個:1741725,4210818,9800817,9926315;

八位的八仙數共有3個:24678050,24678051,88593477

題目:

找出100-999之間的所有水仙花數,每一列輸出一個。

思路:

個位的立方+十位的立方+百位的立方=一個三位數

已知一個三位數n,它的百位數字i即n/100(“/”符號表示前面的數字除以後面的數字之後取整數部分),十位數字j即(n-i*100)/10,個位數字t即n-i*100-j*10

程式碼:

#include "stdio.h"
int main()
{
 int i, j, t, n;
 printf("100-999之間的水仙花數有:\n");
 for (n = 100; n <= 999; n++)
 {
  {
   i = n / 100;
   j = (n - i * 100) / 10;
   t = n - i * 100 - j * 10;
  }
  {
   if (n == i * i*i + j * j*j + t * t*t)
    printf("%d\n", n);
  }
 }
    return 0;
}

C語言實現對水仙花數的判斷

執行結果:

C語言實現對水仙花數的判斷