水仙花數(Narcissistic number)是指一個n位數,其每個位上的數字的n次冪之和等于它本身。例如,153是一個3位數的水仙花數,因為13 + 53 + 33 = 153。
下面是一個簡單的C語言程序,用于找出所有3位數的水仙花數:
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("三位數的水仙花數有:\n");
for (num = 100; num < 1000; num++) {
originalNum = num;
result = 0;
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, 3);
originalNum /= 10;
}
if (result == num) {
printf("%d\n", num);
}
}
return 0;
}
num:當前檢查的數字。originalNum:保存num的副本,用于計算。remainder:存儲originalNum的每一位數字。result:存儲每一位數字的立方和。程序通過循環遍歷所有3位數,計算每個數的各位數字的立方和,如果等于原數,則輸出該數。
變種水仙花數是指一個n位數,其每個位上的數字的m次冪之和等于它本身,其中m不一定是n。例如,8208是一個4位數的變種水仙花數,因為8? + 2? + 0? + 8? = 8208。
下面是一個C語言程序,用于找出所有4位數的變種水仙花數:
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("四位數的變種水仙花數有:\n");
for (num = 1000; num < 10000; num++) {
originalNum = num;
result = 0;
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, 4);
originalNum /= 10;
}
if (result == num) {
printf("%d\n", num);
}
}
return 0;
}
通過上述代碼,我們可以輕松地找到水仙花數和變種水仙花數。這些代碼展示了如何使用循環和條件判斷來解決數學問題。你可以根據需要修改代碼中的位數和冪次,以查找其他類型的水仙花數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。