水仙花数在 C 语言中的高效输出169
水仙花数,又称自幂数或阿姆斯特朗数,是指一个 n 位的数,其各位数字的 n 次方之和等于它本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
算法分析
检测一个数是否为水仙花数的过程如下:1. 将给定的数字转换为字符串。
2. 找到字符串的长度(表示数字的位数)。
3. 逐位遍历字符串,将每个字符转换为数字。
4. 为每个数字计算其 n 次方并将结果累加到一个和中。
5. 如果和等于给定的数字,则该数字是水仙花数。
C 语言实现以下 C 语言代码实现了上述算法:
```c
#include
#include
#include
int main() {
char number[100]; // 存储输入的数字
int len; // 数字的位数
int sum; // 各个数字的 n 次方之和
int i; // 循环变量
int digit; // 每个数字的 n 次方
int n; // 指数
printf("请输入一个数字:");
scanf("%s", number);
len = strlen(number);
printf("这个数字的位数是:%d", len);
sum = 0;
for (i = 0; i < len; i++) {
digit = atoi(&number[i]);
n = len;
while (n > 0) {
digit *= digit;
n--;
}
sum += digit;
}
printf("各个数字的 %d 次方之和是:%d", len, sum);
if (sum == atoi(number)) {
printf("%s 是一个水仙花数。", number);
} else {
printf("%s 不是一个水仙花数。", number);
}
return 0;
}
```
使用方法
要使用此代码,请编译并在命令行中运行它。然后,输入一个数字并按 Enter 键。程序将分析给定的数字并确定它是否是一个水仙花数。
示例输出
请输入一个数字:153
这个数字的位数是:3
各个数字的 3 次方之和是:153
153 是一个水仙花数。
请输入一个数字:123
这个数字的位数是:3
各个数字的 3 次方之和是:36
123 不是一个水仙花数。
2024-11-24
上一篇:C 语言中分段函数的实现
下一篇:C语言输出整数的全面指南
Java方法栈日志的艺术:从错误定位到性能优化的深度指南
https://www.shuihudhg.cn/133725.html
PHP 获取本机端口的全面指南:实践与技巧
https://www.shuihudhg.cn/133724.html
Python内置函数:从核心原理到高级应用,精通Python编程的基石
https://www.shuihudhg.cn/133723.html
Java Stream转数组:从基础到高级,掌握高性能数据转换的艺术
https://www.shuihudhg.cn/133722.html
深入解析:基于Java数组构建简易ATM机系统,从原理到代码实践
https://www.shuihudhg.cn/133721.html
热门文章
C 语言中实现正序输出
https://www.shuihudhg.cn/2788.html
c语言选择排序算法详解
https://www.shuihudhg.cn/45804.html
C 语言函数:定义与声明
https://www.shuihudhg.cn/5703.html
C语言中的开方函数:sqrt()
https://www.shuihudhg.cn/347.html
C 语言中字符串输出的全面指南
https://www.shuihudhg.cn/4366.html