当前位置: 首页 > news >正文

解密水仙花数的神奇世界

求解水仙花数。水仙花数,也被称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,是指一个3位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3,故153是一个水仙花数。

请找出所有的水仙花数并输出。

#include <stdio.h>

int main()
{
int num,hundreds,tens,units,sum;

for(num=100;num<=999;num++)
{
hundreds = num/100;
tens = (num/10)%10;
units = num%10;

sum = hundreds*hundreds*hundreds + tens*tens*tens + units*units*units;

if(sum==num)
{
printf("输出%d\n",num);
}

}


return 0;
}

🧩 代码逻辑分步解析

1. 遍历所有三位数

  • 这个for循环是程序的核心框架。它从最小的三位数100开始,一直遍历到最大的三位数999
  • 变量num代表当前正在被检查的数字。

2. 分解数字的各位

这是算法中最巧妙的部分,通过整数除法和取余运算来分离出百位、十位和个位

  • 获取百位 (hundreds)

    • 在 C 语言中,两个整数相除的结果仍然是整数(小数部分会被直接丢弃)。
    • 例如,当num为 153 时,153 / 100的结果是 1,这正是百位数字。
  • 获取十位 (tens)

    • 这是一个两步操作:
      1. num / 10:先将数字除以 10,相当于把个位数去掉。例如,153 / 10得到 15。
      2. % 10:再对 10 取余,得到这个新数字的个位,也就是原数字的十位。例如,15 % 10得到 5。
  • 获取个位 (units)

    • 任何整数对 10 取余,得到的结果就是它的个位数字。
    • 例如,153 % 10的结果是 3。

3. 计算立方和

  • 这行代码计算刚刚分离出的三个数字的立方和。
  • 这里直接使用乘法(如hundreds*hundreds*hundreds)来计算立方,而不是使用pow()函数。这是一个非常好的编程实践,因为它完全使用整数运算,避免了使用pow()函数可能带来的浮点数精度问题

4. 判断与输出

  • 这是最后的判断步骤。将计算出的立方和sum原始数字num进行比较。
  • 如果两者相等,说明num就是一个水仙花数,程序会将其打印出来。

🚶‍♂️ 执行过程模拟

让我们以数字153为例,看看程序是如何判断的:

  1. 当循环进行到num = 153时。
  2. 分解数字
    • hundreds = 153 / 100 = 1
    • tens = (153 / 10) % 10 = 15 % 10 = 5
    • units = 153 % 10 = 3
  3. 计算立方和
    • sum = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153
  4. 判断
    • sum(153) 等于num(153),条件成立。
  5. 输出
    • 程序执行printf,打印出输出153
http://www.jsqmd.com/news/632770/

相关文章:

  • Qwen3.5-9B代码审查助手:集成VS Code自动检测代码缺陷与安全漏洞
  • [AI/向量数据库/GUI] Attu : Milvus 的图形化与一体化管理工具凑
  • Omni-Vision Sanctuary 实战:软件测试中的AI视觉自动化用例生成
  • MySQL语句执行深度剖析:从连接到执行的全过程赘
  • [信息安全] AES128 加密/解密 --> state 矩阵
  • Cosmos-Reason1-7B模型API调用实战:Python环境下的异步并发处理
  • WuliArt Qwen-Image Turbo高性能:4步推理较SDXL快8.3倍的Latency Benchmark
  • 通义千问3-4B-Instruct-2507实战测评:轻量级模型的RAG能力有多强?
  • 百马驮货的数学之谜
  • 从零上手:基于RKISP2.x Tuner的ISP图像质量调试实战指南
  • Transformer 从零开始讣
  • 扩散模型对抗样本经典baselines鼐
  • Leather Dress Collection 模型微调概念入门:何时需要以及如何准备数据
  • 2026仓储货架技术分享:台州货架/嘉兴货架/奉化货架/宁波货架/杭州货架/江北货架/海曙货架/温州货架/湖州货架/选择指南 - 优质品牌商家
  • Linux驱动篇开篇——《驱动篇》
  • 幻镜NEURAL MASK在文化遗产数字化中的应用:古籍插图主体提取
  • 荣耀最强数字旗舰来了!荣耀600 Pro真机揭晓
  • 【推荐】银发经济小程序
  • ANIMATEDIFF PRO效果展示:看看这些用文字生成的电影级动态画面
  • Llama-3.2V-11B-cot企业实操:中小企业低成本视觉AI部署方案
  • 构建基于SDMatte的智能相册:自动人物分类与场景相册生成
  • Phi-3-mini-4k-instruct-gguf赋能课程设计:自动生成Multisim电路仿真报告
  • CHORD-X在复杂网络环境下的部署:解决403 Forbidden等访问问题
  • Hunyuan-MT-7B-WEBUI部署详解:Jupyter环境下一键启动全流程
  • RMBG-2.0 API封装教程:将Streamlit工具转为REST接口供其他系统调用
  • LFM2.5-1.2B-Thinking-GGUF快速体验:无需安装的在线API调用演示
  • DeepSeek-R1-Distill-Qwen-1.5B开箱即用:本地AI服务搭建全攻略
  • 新概念英语第一册125_Tea for two
  • Python的__enter__中的预防泄漏资源
  • 板级支持包的构建