C语言实现:轻松判断整数是否为水仙花数
水仙花数(Narcissistic number),又称为自恋数、自幂数或阿姆斯壮数,是指一个n位数,其各个位上的数字的n次方之和等于该数本身。例如153是一个三位数,且1^3 + 5^3 + 3^3 = 153。 下面是一个用C语言编写的程序,用于判断一个整数是否为水仙花数: ```c #include <stdio.h> #include <math.h> // 函数声明 int isNarcissistic(int num); int main() { int num; printf("请输入一个整数: "); scanf("%d", &num); if (isNarcissistic(num)) { printf("%d 是水仙花数\n", num); } else { printf("%d 不是水仙花数\n", num); } return 0; } // 判断一个整数是否为水仙花数的函数 int isNarcissistic(int num) { int originalNum, remainder, result = 0; int n = 0; double power; originalNum = num; // 计算数字的位数 while (originalNum != 0) { originalNum /= 10; ++n; } originalNum = num; // 计算各位数字的n次方之和 while (originalNum != 0) { remainder = originalNum % 10; power = pow(remainder, n); result += power; originalNum /= 10; } // 判断结果是否等于原数 if (result == num) { return 1; // 是水仙花数 } else { return 0; // 不是水仙花数 } } ``` 程序说明: 1. 主函数:从用户处获取一个整数并调用`isNarcissistic`函数来判断该整数是否为水仙花数。 2. isNarcissistic函数:这个函数首先计算输入整数的位数,然后计算每个位上的数字的n次方之和,最后判断这个和是否等于原来的整数。如果相等,则返回1表示是水仙花数;否则返回0表示不是水仙花数。 你可以将上述代码复制到你的C语言开发环境中进行编译和运行,以测试不同的整数是否为水仙花数。 ######[AI写代码神器 | 604点数解答 | 2024-10-30 09:04:56]
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)49
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)339
- C语言:按序读入浮点数、整数、字符并按新顺序输出,附代码实现 (字节豆包 | 108点数解答 | 2024-09-30 22:54:08)352
- C语言:按特定顺序读入并输出浮点数、整数和字符,精确控制小数位(字节豆包 | 155点数解答 | 2024-10-08 22:06:18)347
- C++与Python:按特定顺序输入输出数据并保留浮点数两位小数的实现(字节豆包 | 168点数解答 | 2024-10-08 22:07:03)351
- C语言:按特定顺序读入再输出,含浮点数精确格式处理(字节豆包 | 105点数解答 | 2024-10-08 22:07:29)360
- C++ 混合类型数据格式化输入输出:按指定顺序输出并保留两位小数(字节豆包 | 187点数解答 | 2024-10-16 14:31:08)405
- C语言:实现混合类型数据格式化输入输出,代码超简单!(字节豆包 | 159点数解答 | 2024-10-16 14:32:18)396
- C语言:按特定格式输入并格式化输出整数、实数和字符(字节豆包 | 103点数解答 | 2024-10-24 11:12:53)422
- Java 实现:从点类到圆类,计算圆心坐标(50,30)、半径 4 的圆周长与面积(字节豆包 | 246点数解答 | 2024-11-11 16:36:30)356
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)88