c语言编程笔录

首页 >   > 笔记大全

笔记大全

打印水仙花数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语言编写的上述代码,我们可以打印出输入的三位数是否为水仙花数。这个程序演示了如何使用循环、条件语句和数学函数来解决该问题。希望这个回答对您有帮助!