程式設計 判斷乙個數是否是水仙花數

2021-08-28 03:10:53 字數 1129 閱讀 6512

水仙花數:乙個三位數,其按位立方之和等於該數本身,該數稱為水仙花數。

(其實,水仙花數是「自冪數」中的一種;自冪數:乙個n位數,其按位數字的n次方之和,等於該數本身。)

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

//水仙花數:乙個三位數,其按位立方之和等於該數本身,該數稱為水仙花數。

//(其實,水仙花數是「自冪數」中的一種;自冪數:乙個n位數,其按位數字的n次方之和,等於該數本身。)

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

#includeint cube(int m); //cube表示三次冪

int cube(int m)

//求m的個位數 m % 10

//求m的十位數 m/10 %10

//求m的百位數 m/100 %10

void main(void)

#include#define cube(m) ((m)*(m)*(m))   // #define cube(m) m*m*m  錯誤形式,巨集定義一定要加括號

void main(void)

{ int n;

printf("請輸入需要判斷的數:");

scanf("%d", &n);

if((cube(n%10) + cube(n/10 %10) + cube(n/100 %10)) == n)

//巨集定義等價於 if(n == (n%10)* (n%10) *(n%10) +

// (n/10%10)* (n/10%10)* (n/10%10) +

// (n/100%10)* (n/100%10)* (n/100%10))

//巨集不能起到簡化運算的作用

printf("該數是水仙花數\n");

else

printf("該數非水仙花數\n");

分析:

函式方案存在著函式呼叫的「系統消耗」(暫時不解釋,只需知道,函式的呼叫是有代價的!),但可以實現模組化程式設計;

巨集替換的方案,是不存在函式呼叫關係的, 但是,巨集不能起到簡化運算的作用。

什麼是水仙花數並判斷水仙花數

題目 列印出所有的 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。例如 153是乙個 水仙花數 因為153 1 的三次方 5的三次方 3的三次方。public class lianxi03 水仙花數只是自冪數的一種,嚴格來說三位數的3次冪數才成為水仙花數。附 其他位數的自冪...

什麼是水仙花數並判斷水仙花數

題目 列印出所有的 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。例如 153 是乙個 水仙花數 因為153 1 的三次方 5的三次方 3的三次方。public class lianxi03 水仙花數只是自冪數的一種,嚴格來說三位數的3次冪數才成為水仙花數。附 其他位數的自...

判斷是否為水仙花數

水仙花數是指乙個 n 位數 n 3 它的每個位上的數字的 n 次冪之和等於它本身。例如 111 555 333 153 獲取數字 整數 var inputnum prompt 請輸入乙個整數 獲取它是多少位 console.log inputnum.length var leng inputnum....