水仙花數:乙個三位數,其按位立方之和等於該數本身,該數稱為水仙花數。
(其實,水仙花數是「自冪數」中的一種;自冪數:乙個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....