N 位十進位正整數,若其各位數字的 N 次方和等於該數本身,稱為「花朵數」(N=3 為水仙花數,N=4 如 1634,N=5 如 92727)。任務:求 N=21 時所有花朵數,按遞增輸出,3 分鐘內完成。
/* 0_問題.h */
#define JINZHI 10 // 進制
#define WEISHU 21 // 位數
#define N WEISHU // 冪次等於位數
/* 測試切換 */
#define CESHI // 測試模式:WEISHU=3
//#define QIUJIE // 求解模式:WEISHU=21
以符號常數描述問題特徵,支援多進制、多位數擴展。CESHI/QIUJIE 開關實現「同代碼、異編譯」的測試/生產切換。
/* 1_MAIN.c */
#include "1_MAIN.h"
#ifdef CESHI
int main() { qiongju(); system("PAUSE"); return 0; }
#endif
#ifdef QIUJIE
int main() { qiongju(); /* 輸出結果 */ system("PAUSE"); return 0; }
#endif
分離「窮舉驗算記錄」與「輸出」兩階段,因題目要求由小到大輸出,故先記錄再排序輸出。
main 呼叫 qiongju()。void qiongju(void);。2_窮舉.c/.h,移入原型並加 extern。1_MAIN.h #include "2_窮舉.h"。2_窮舉.c 實作空函數體,編譯通過。此「意識流」記錄了從問題理解、抽象建模、測試策略、模組化拆解的完整思維軌跡。