教育改变生活

标题: 【C语言】用for循环求水仙花数 [打印本页]

作者: wander    时间: 2024-10-24 22:19
标题: 【C语言】用for循环求水仙花数
水仙花数是一个有趣的数学概念,它是指一个 3 位数,其各位数字的立方和等于这个数本身。例如,153 就是一个水仙花数,因为 1³ + 5³ + 3³ = 1 + 125 + 27 = 153。这种数字因其独特的性质而得名,就像水仙花一样美丽而独特。
在C语言中,我们可以使用 for 循环来寻找所有的水仙花数。这个过程涉及到数学计算和程序逻辑的结合,让我们一步步来解析这个问题。

首先,我们需要理解如何在程序中判断一个数是否为水仙花数,这个过程包括以下几个步骤:

现在,让我们看一下如何使用C语言的 for 循环来实现这个过程:


让我们详细解析这段代码:
我们使用一个 for 循环遍历所有的三位数(从 100 到 999)。对于每一个数,我们进行以下操作:
当 while 循环结束时,我们就得到了所有位数的立方和。最后,我们再比较 sum 是否等于原数 i;如果相等,那么这个数就是一个水仙花数,我们就将其打印出来。
这个算法的时间复杂度是 O(n),其中 n 是我们要检查的数字范围(在这个例子中是 900,因为我们检查了 100 到 999 之间的所有数字)。虽然对于每个数字,我们都需要进行额外的循环来计算各位数字的立方和,但由于这个内部循环的次数是固定的(对于三位数,最多循环三次),所以它不会影响整体的时间复杂度。
运行这段代码,我们会得到以下输出:
水仙花数有:153370371407
这个结果告诉我们,在 100 到 999 之间,只有这四个数是水仙花数。每个数都满足其各位数字的立方和等于它本身的条件。






欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2