题目----水仙花数问题的实现以及对于数字每位数的求解原理分析

简介: 题目----水仙花数问题的实现以及对于数字每位数的求解原理分析

水仙花数

是指一个n位数,其各位数字的n次幂之和等于该数本身。

也就是说如果我们需要求出所有的水仙花数,也就需要知道数字的每一位是什么,并且将它们都提取出来再以n次幂的形式相加,要求结果等于该数本身。

我们设定为三位数,因为位数过高编译器会受不了(bushi)

那么三位数也就需要知道个位十位百位的数字分别是多少。

在这里我们运用模10除10法将每个位数提取出来:

while (num != 0)

{

digit = num % 10;

sum += digit * digit * digit;

num /= 10;

}

该while循环将遍历所有的三位数(100 到 999),计算每个数的各位数字的立方和。

我们将它们打印出来即可。

#include <stdio.h>

int main()

{
   int num, sum, digit;

   printf("所有的三位水仙花数为:\n");
   for (int i = 100; i < 1000; i++) {
       num = i;
       sum = 0;
       
       while (num != 0) {
           digit = num % 10;
           sum += digit * digit * digit;
           num /= 10;
       }

       if (sum == i)

      {
           printf("%d\n", i);
       }
   }

   return 0;
}


原理

这是一个很简单的算法题。但是我们从中能发现一个很常见的公式或者说是定律:

模10除10

它的作用是求出位上的数字。

那么它的原理是什么呢?

我们都知道,

模除运算(取模运算)通常用符号 "%" 表示,在数学中,它表示取两个数相除的余数。当你对一个数进行模 10 运算(即取模 10),实际上是在找到这个数除以 10 的余数。这个运算可以帮助提取给定数字的个位数。

举个例子,如果我们有一个数 365,对它进行模 10 运算:

365 % 10 = 5

这里,结果中的余数 5 就是原始数字 365 的个位数。

因此,模 10 运算能够帮助我们提取整数中的个位数字,因为它返回的余数就是这个数字的个位数。

而这仅仅只能帮我们求出个位数,假设我们需要每一位数呢?

在C语言除法运算中,我们假设某个数a,

a/10=以a的倒数第二数为个位的数

举个例子:

365 / 10 =36

这里,结果中的36就是原先百位数365的后两位数组成的一个十位数。

而在循环中

模10运算与除10运算的结合使用能够帮助我们获得每一位上的数字。

这就是"模10余10法"。

目录
相关文章
|
Java 数据库连接 应用服务中间件
【Maven】依赖范围、依赖传递、依赖排除、依赖原则、依赖继承
在Maven中,依赖范围(Dependency Scope)用于控制依赖项在编译、测试和运行时的可见性和可用性。通过指定适当的依赖范围,可以在不同的构建和执行环境中控制依赖项的加载和使用。
2074 1
|
人工智能 供应链 程序员
# 2026智能体元年爆发:不仅是效率革命,更是六大核心行业的“基因重组”
当我们在2026年讨论Agent(智能体)时,我们不再讨论它“是什么”,而是关注它“改变了什么”。从软件开发的“端到端交付”到医疗健康的“全生命周期管理”,智能体正在从走向千行百业,将行业渗透率从15%推至全球60%。本文将深度解析智能体如何引发新的激动人心的产业革命。
614 0
|
8月前
|
人工智能 弹性计算 API
保姆级图文教程!OpenClaw阿里云/本地零门槛部署+Qwen3-Max接入+百炼API配置实战指南
2026年,AI智能体的核心竞争力已转向“高效部署+强模型适配”,OpenClaw(Clawdbot)作为开源领域极具影响力的AI Agent框架,凭借灵活的部署特性、全面的技能生态,成为衔接阿里云基础设施与千问Qwen3-Max大模型的核心载体。千问Qwen3-Max作为阿里云百炼平台的旗舰级大模型,具备262144超长上下文长度、强大的工具调用能力和精准的语义理解能力,搭配OpenClaw可实现自动化任务执行、复杂指令解析、长文本处理等多种高阶功能,广泛适用于办公、研报、数据处理等多场景。
1775 4
|
10月前
|
人工智能 JSON 架构师
面试通关:整理AI智能体运营工程师真题
2026 年的春招季比往年来得更早一些。在传统的 Java、Go 后端岗位卷出天际的同时,一个新兴的岗位——AI 智能体运营工程师 (AI Agent Operations Engineer) 正在悄然崛起。 不同于简单的“提示词工程师(Prompt Engineer)”,这个岗位要求候选人既懂业务逻辑,又具备 Python 开发和架构编排能力。据猎聘大数据显示,该岗位的平均薪资已超越传统开发岗 20%。 本文整理了我在智能体来了(西南总部)参加【AI智能体运营工程师就业班】期间,由技术导师金加德讲师在内部模拟面试中归纳的 10 道高频真题。这些题目涵盖了从 LLM 原理、RAG 架构到 Fu
|
人工智能 文字识别 搜索推荐
uTools软件安装教程及使用教程!一个跨平台的桌面效率工具!快速办公软件
uTools是一款跨平台效率工具,支持Win/Mac/Linux,通过“Alt+空格”呼出搜索框,集成OCR、翻译、计算器、剪贴板等数十款插件,打造个性化办公环境,轻量高效,即开即用。
2579 2
运营必看!1688大变天,您的流量为啥跑了?
近期,有1688商友反映,1688店铺流量下滑明显,以往稳定的流量格局似已一去不返。这背后的核心原因,是1688平台业务模式的全面升级。为助力1688商友破局,今天将深度解析1688变革后的核心要点,助您寻回失落的流量。
|
JavaScript 数据安全/隐私保护
Vue中如何使用过滤器来隐藏手机号、邮箱等字符串的中间部分内容
这篇文章介绍了在Vue中如何使用过滤器来隐藏手机号和邮箱等字符串的中间部分内容,以提高隐私保护。文章展示了实现效果,并提供了实现过程的代码示例,包括HTML部分的绑定、data部分的数据定义和script部分的过滤器定义。文章还解释了过滤器的概念、语法和使用方式,并提供了一个外部链接供读者获取更加详细的过滤器知识。
|
SQL 存储 人工智能
化整为零:湖仓数据平台一站式迁移
本文介绍了湖仓平台迁移的概况、痛点及解决方案。首先概述了数据湖和数据仓库迁移的现状与背景,强调其重要性及挑战。接着分析了迁移过程中的主要痛点,如数据量大、业务变更频繁等。最后提出了一种化整为零的新范式,通过精细化设计和自动化工具提升迁移效率,并展示了一站式湖仓迁移中心的关键阶段和产品大图,旨在加速迁移过程并减少人工成本。
|
存储 缓存 Java
Android Binder机制原理(史上最强理解,没有之一)
原文地址: http://blog.csdn.net/universus/article/details/6211589   Binder是Android系统进程间通信(IPC)方式之一。
3856 0
|
网络协议 网络虚拟化 数据中心
广播域与段间路由:详解网络隔离与通信机制
广播域与段间路由:详解网络隔离与通信机制
944 0