打印水仙花数c语言
更新时间:2023-09-23问题描述:
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为13 + 53 + 33 = 153。
解决方案:
下面是一个使用C语言打印水仙花数的示例代码:
#include#include int main() { int n, originalNumber, remainder, result = 0; printf("输入一个三位数: "); scanf("%d", &n); originalNumber = n; while (originalNumber != 0) { remainder = originalNumber % 10; result += pow(remainder, 3); originalNumber /= 10; } if (result == n) printf("%d 是一个水仙花数", n); else printf("%d 不是一个水仙花数", n); return 0; }
代码解析:
首先,代码声明了几个变量,包括 n、originalNumber、remainder 和 result。n 是用户输入的三位数,originalNumber 用于保存 n 的副本,remainder 用于计算每一位的数字,result 用于存储每个位的 n 次幂之和。
用户输入的三位数保存在 n 中,然后将其赋值给 originalNumber。在循环中,我们使用模运算和除法运算来提取和移动原始数字的每个数字。余数表示每个数字,然后使用 pow 函数计算其立方值,并将结果累加到 result 变量中。重复这个过程,直到 originalNumber 的值变为 0。
最后,代码检查 result 是否与 n 相等。如果它们相等,则打印 n 是一个水仙花数;否则,打印 n 不是一个水仙花数。
总结:
通过使用C语言编写的上述代码,我们可以打印出输入的三位数是否为水仙花数。这个程序演示了如何使用循环、条件语句和数学函数来解决该问题。希望这个回答对您有帮助!