水仙数,又称自恋数、自幂数、阿姆斯特朗数,它是指一个n位数,其各位数字的n次幂之和等于该数本身。例如,153是一个三位数,且 1^3 + 5^3 + 3^3 = 153,因此153是一个水仙数。
今天,我们将用C语言来编写一个程序,用于识别和打印出所有的三位水仙数。通过这个过程,我们可以了解C语言的基本语法,同时也能感受到数学的魅力。
程序设计思路
- 输入:由于我们只关注三位数的水仙数,因此程序不需要从用户那里获取输入。
- 处理:程序将遍历从100到999的所有三位数,对每个数进行判断。
- 判断:对于每个数,将其每位数字分别提取出来,计算每位数字的三次幂之和。
- 输出:如果计算出的和等于原数,则打印该数。
C语言代码实现
以下是一个简单的C语言程序,用于识别和打印所有的三位水仙数:
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
// 遍历所有三位数
for (num = 100; num < 1000; num++) {
originalNum = num;
result = 0; // 重置结果
// 计算每位数字的三次幂之和
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
// 判断是否为水仙数
if (result == num) {
printf("%d 是一个水仙数。\n", num);
}
}
return 0;
}
程序解释
#include <stdio.h>:引入标准输入输出库,用于打印信息。int main():程序的入口。for (num = 100; num < 1000; num++):遍历所有三位数。while (originalNum != 0):循环提取每位数字。remainder = originalNum % 10;:获取当前最低位的数字。result += remainder * remainder * remainder;:计算当前位的三次幂并累加到结果中。originalNum /= 10;:去掉当前最低位的数字。if (result == num):判断结果是否等于原数,如果是,则打印该数。
通过这个程序,我们可以轻松地识别出所有的三位水仙数,同时也学习了C语言的基本语法和编程思维。希望这个例子能帮助你更好地理解数学和编程的魅力!
