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 是水仙花数。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/604090.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【北京迅为】《iTOP-3588开发板快速烧写手册》-第11章 救砖方法

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

pycharm中导入rospy(ModuleNotFoundError: No module named ‘rospy‘)

1. ubuntu安装对应版本ros ubuntu20.04可参考&#xff1a; https://wiki.ros.org/cn/noetic/Installation/Ubuntuhttps://zhuanlan.zhihu.com/p/515361781 2. 安装python3-roslib sudo apt-get install python3-roslib3.在conda环境中安装rospy pip install rospkg pip in…

重定向_缓冲区

目录 重定向 文件属性操作 浅谈重定向​编辑 深入重定向 dup2 缓冲区 缓冲区的理论理解 代码分析 重定向 文件属性操作 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *path, struct stat *buf); int fstat(i…

USB系列一:USB技术概念

在这里USB的历史就不赘述了&#xff0c;有兴趣可以自己去搜索。也省略掉USB接口的概述&#xff0c;这些都是一些飞技术性的常识性的知识&#xff0c;没必要浪费篇幅和文字来描述。 一、USB总线版本&#xff1a;&#xff08;从USB1.1说起&#xff09; 1、USB1.1 1998年9月23日…

教你如何高效使用Java中的ArrayList

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

【vue+el-upload】当action=“#“,代表不使用默认上传,使用自定义上传,http-request获取文件流

el-upload有多种上传行为&#xff1a; 1、立即上传&#xff1a; 当 action 属性被赋予一个有效的 URL 时&#xff0c;一旦用户选择了文件&#xff0c;el-upload 组件会立即自动将文件上传到指定的服务器地址。 2、不立即上传&#xff08;自定义触发&#xff09;&#xff1a; 如…

杰发科技AC7840——软件Sent_HAL39X

0. 序 截止2024.5.8&#xff0c;杰发的MCU没有硬件Sent功能&#xff0c;因此使用PWM模拟Sent来试试。 测试下7840的软件sent功能。 参考链接&#xff1a;SENT协议应用笔记 - TechPlus汽车工坊的文章 - 知乎 SENT协议 1. Sent功能测试 使用提供的软件Sent代码在7840上测试&a…

正点原子Linux学习笔记(五)FrameBuffer 应用编程

FrameBuffer 应用编程 19.1 什么是 FrameBuffer19.2 LCD 的基础知识19.3 LCD 应用编程介绍使用 ioctl()获取屏幕参数信息使用 mmap()将显示缓冲区映射到用户空间 19.4 LCD 应用编程练习之 LCD 基本操作19.5 LCD 应用编程练习之显示 BMP 图片在 LCD 上显示 BMP 图像在开发板上测…

超强动画制作软件blender

blender中文手册&#xff1a;Blender 4.1 Manual Blender 是一款集3D建模、渲染、动画、视频编辑、音频处理、游戏设计等多功能于一体的软件。由于其开源性质&#xff0c;它拥有庞大的用户群体和活跃的开发者社区&#xff0c;这使得Blender的功能和性能得到了不断的提升和优化…

Windows内核开发:如何使用STL

前言 大家都知道应用层c的STL非常强大&#xff0c;非常好用&#xff0c;但是在内核下就没法用了。针对这个问题&#xff0c;经过我不懈的寻找&#xff0c;终于找到了解决内核无法使用STL的方法。 使用new/delete关键字 先说一下常用关键字如何在内核中使用。其实只需要在一个全…

第四十节实现主人公的技能释放功能(二)实现技能按钮

看看我们今天要实现的效果是&#xff0c;当我们按下数字1快捷键&#xff0c;我们的技能按钮会进入倒计时&#xff0c;如下图演示&#xff1a; 一、新建场景和根节点设置 新建场景&#xff0c;选择TextureButton作为根节点&#xff0c;重名为SpellButton&#xff0c;保存场景…

啸叫抑制器采用什么处理芯片?ES56031或PH56031

会议系统或卡拉OK最头疼的就是啸叫了吧&#xff0c;来看看啸叫抑制器采用什么芯片 四通道啸叫抑制器&#xff0c;采用了2个电路板&#xff0c;每个板子处理2路信号&#xff0c;每块电路板有2个卡侬输入插座&#xff0c;2个卡侬输出插座 ES56031S&#xff0c;该啸叫抑制器为4通道…

【优选算法】——双指针——Leetcode——283.移动零

目录 ​编辑 1.题目 2. 解法&#xff08;快排的思想&#xff1a;数组划分区间-数组分两块&#xff09;&#xff1a; 1.算法思路&#xff1a; 2.算法流程&#xff1a; 3.代码实现 1.C语言 2.C 1.题目 283. 移动零 提示 给定一个数组 nums&#xff0c;编写一个函数将所有…

MySQL增删查改(进阶)

目录 数据库约束 表的设计 查询操作的进阶 查询搭配插入使用 聚合查询 1>count(*) 2>sum(*) 3>avg(*) 4>max(*) 5>min(*) group by分组分别进行聚合查询 联合查询 / 多表查询[重点] 外连接 自连接 子查询 合并查询 小结: 数据库约束 有时候…

cesium雷达扫描(消逝圆效果)

cesium雷达扫描(消逝圆效果) 以下为源码直接复制可用 1、实现思路 通过修改“material”材质来实现轨迹球效果 2、示例代码 1、index.html <!DOCTYPE html> <html lang="en"><head><!

小猪APP分发:重塑应用分发市场的创新力量

在移动互联网蓬勃发展的今天&#xff0c;应用分发平台作为连接开发者与用户的桥梁&#xff0c;扮演着至关重要的角色。然而&#xff0c;随着市场的饱和&#xff0c;如何在众多平台中脱颖而出&#xff0c;为开发者提供更宽广的舞台&#xff0c;同时确保用户能够便捷、安全地获取…

【linux】dmesg工具

dmesg介绍 dmesg工具用途&#xff1a; dmesg - print or control the kernel ring buffer kernel ring buffer, 内核环形缓冲区&#xff0c;也叫环形队列&#xff0c;Linux内核日志就存储在一个环形队列中&#xff0c;环形队列满的时候&#xff0c;新的消息会覆盖掉旧的消息。…

小程序支付的款项流转与到账时间

商家做小程序&#xff0c;最关心的是客户通过小程序下单支付的钱&#xff0c;是怎么样的流转状态以及最终到哪里。因此&#xff0c;本文将详细解析款项最终流向何处以及多久能够到账。 一、小程序支付的款项流向 当用户在小程序内完成支付后&#xff0c;款项并不会直接到达商…

CSRF漏洞简介

csrf简介 CSRF 全称为跨站请求伪造&#xff08; Cross-site request forgery &#xff09;&#xff0c;是一种网络攻击方式&#xff0c;在 CSRF 的攻击场景中攻击者会伪造一个请求&#xff08;这个请求一般是一个链接&#xff09;&#xff0c;然后欺骗目标用户进行点击&#xf…

C51版本Keil + STC-ISP 实现第一盏灯,从创建到实现

创建项目 1. 新建项目 Project -> New uVision Project 2.1 新建文件夹 2.2 输入文件名称, 并保存 3.1 选择当前位STC芯片的开发板&#xff0c;选择STC MCU Database 搜素具体芯片型号&#xff0c;进行配置&#xff1a; 3.2 选择通过搜索框搜索到stc相关芯片信息 如果st…