C语言每日一练(12、水仙花数)

在编程的领域中,我们常常会遇到一些有趣而富有挑战性的问题。今天,让我们一起来探讨一个经典的编程题目------打印出所有的"水仙花数"。

所谓"水仙花数",是指一个三位数,其各位数字的立方和等于该数本身。例如,153 就是一个典型的"水仙花数",因为 153 等于 1 的三次方加上 5 的三次方再加上 3 的三次方。

以下是用 C 语言实现找出所有"水仙花数"的代码及详细注释:

复制代码
#include <stdio.h>

main()
{
    int i,j,k,n;  // 定义变量,i 表示百位,j 表示十位,k 表示个位,n 用于遍历 100 到 999 的数
    printf("'water flower'number is:");
    for(n=100;n<1000;n++)  // 从 100 开始到 999 进行循环
    {
        i=n/100;  /* 利用除法运算分解出百位 */
        j=n/10%10;  /* 先除以 10 得到百位和十位,再取余 10 得到十位 */
        k=n%10;  /* 利用取模运算分解出个位 */
        if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)  // 判断是否满足水仙花数的条件
        {
            printf("%-5d",n);  // 打印出满足条件的水仙花数
        }
    }
    printf("\n");
}

以下是一种快速判断一个数是否为水仙花数的方法步骤:

  1. 将这个数转换为字符串,以便获取各个数位上的数字。
  2. 提取出每个数位上的数字。
  3. 将这些数字进行立方计算。
  4. 将立方后的结果相加。
  5. 判断相加的结果是否等于原数,如果等于则是水仙花数,否则不是。

例如,对于数字 153,先转换为字符串"153",然后提取出 1、5、3,计算 1³、5³、3³ 并相加得到 153,与原数相等,所以 153 是水仙花数。

通过这段代码,我们可以清晰地看到如何通过逐步分析每个三位数的各个数位,并进行条件判断,从而找出那些神奇的"水仙花数"。这不仅是对编程技巧的一种锻炼,也是对数学与计算机科学奇妙结合的一次体验。希望大家在这个过程中也能感受到编程带来的乐趣和挑战!

让我们一起在编程的海洋中继续探索更多的精彩吧!

相关推荐
周末也要写八哥16 分钟前
在C++中使用预定义宏
开发语言·c++·算法
Data_Journal24 分钟前
使用Python lxml轻松进行网络爬取
开发语言·php
xcLeigh39 分钟前
IoTDB JDBC 完整使用教程:连接、查询、批处理与字符集配置
开发语言·数据库·qt·iotdb·查询·批处理·连接
学会870上岸华师42 分钟前
C 语言程序设计——第一章课后编程题
c语言·开发语言·学习·算法
小小编程路43 分钟前
新手快速学 Python 极简速成指南
开发语言·c++·python
rabbit_pro1 小时前
SpringBoot3集成Langchain4j使用Ollama
java·开发语言
计算机安禾2 小时前
【c++面向对象编程】第26篇:对象的内存模型:成员变量与成员函数的存储分离
开发语言·c++·算法
郝学胜-神的一滴2 小时前
Qt 高级开发 005: Qt Creator与Visual Studio 项目双向转换
开发语言·c++·ide·qt·程序人生·visual studio
解决问题no解决代码问题2 小时前
JAVA GC
java·开发语言·jvm
之歆2 小时前
DAY_10 JavaScript 深度解析:原型链 · 引用类型 · 内置对象 · 数组方法全攻略(下)
开发语言·前端·javascript·ecmascript