怎么用c语言求水仙花数,用C语言轻松实现寻找水仙花数的完整步骤和代码解析


寻找水仙花数

什么是水仙花数?

水仙花数(Narcissistic Number)也被称为阿姆斯特朗数(Armstrong Number),它是指一个n位数,其每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

用C语言寻找水仙花数

c

include

int main() {

int i, original, remainder, result = 0;

int temp;

for (i = 100; i <= 999; i++) {

original = i;

result = 0;

temp = i;

while (temp != 0) {

remainder = temp % 10;

result += remainder remainder remainder;

temp /= 10;

}

if (result == original) {

printf("%d", original);

}

}

return 0;

}

代码解析

1. 我们包含了`stdio.h`头文件,以便使用`printf`函数。

2. 在`main`函数中,我们定义了几个整数变量:`i`用于循环,`original`用于存储当前检查的数,`remainder`用于存储数字的每一位,`result`用于存储每一位的立方和,`temp`用于临时存储`original`的值。

3. 我们使用一个`for`循环来遍历所有的三位数(从100到999)。

4. 在循环内部,我们首先将`i`的值赋给`original`,并将`result`重置为0。

5. 我们使用`temp`来存储`original`的值,以便在循环中安全地修改它。

6. 接下来,我们使用一个`while`循环来提取`original`的每一位数字,并计算其立方和。

7. 在`while`循环中,我们使用`%`运算符来得到`original`的最后一位数字,并将其添加到`result`中。然后,我们将`original`除以10,以便在下一次迭代中处理下一位数字。

8. 当`while`循环完成后,我们检查`result`是否等于`original`。如果是,那么`original`就是一个水仙花数,我们将其打印出来。

9. 我们返回0,表示程序成功结束。

完整步骤

1. 预处理:我们需要包含`stdio.h`头文件,以便使用`printf`函数。

2. 定义变量:我们需要定义几个整数变量,用于存储和计算水仙花数。

3. 循环遍历:我们使用一个`for`循环来遍历所有的三位数。

4. 计算立方和:对于每个数字,我们计算其每一位的立方和。

5. 检查结果:如果立方和等于原始数字,那么它就是水仙花数,我们将其打印出来。

6. 结束程序:当所有的数字都被检查后,我们返回0,表示程序成功结束。

通过这个程序,我们可以找到所有的三位数的水仙花数。如果你想找到其他位数的水仙花数,只需修改`for`循环的起始和结束值即可。