水仙花数在 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语言输出整数的全面指南
C语言高效连续输出:从基础到高级,打造流畅的用户体验
https://www.shuihudhg.cn/134420.html
Python 数据缩放技术详解:Scikit-learn、NumPy与自定义实现
https://www.shuihudhg.cn/134419.html
PHP操作MySQL数据库:从连接到数据库与表创建的完整教程
https://www.shuihudhg.cn/134418.html
Java高效处理表格数据:从CSV、Excel到数据库的全面导入策略
https://www.shuihudhg.cn/134417.html
Python字符串统计完全指南:从用户输入到高级数据洞察
https://www.shuihudhg.cn/134416.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