C语言练习:变种水仙花数

        今天让我们来看看变种的水仙花吧,话不多说,直入主题。

        题目描述

        变种水仙花数- Lily Number: 把任意的数字,从中间拆分成两个数字,比如1461可
以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则这个数是一个Lily Number。
        例如:
        655=6*55+65*5
        1461 =1*461+14*61 + 146*1
        求出5位数中的所有 Lily Number。

        输入描述:

        无

        输出描述:

        一行,五位数中所有的Lily Number,每两个数之间隔一个空格。

        题目分析

        我们想要求变种水仙花数-Lily Number,根据例子和题目要求,我们需要将一个五位数分为四个组合,如图:

        

        我们将一个五位数分为了左右两个部分,那么我们如何使13145这个五位数变成如图所示的样子之后相乘呢。我们发现取模和除可以帮我们达成目的。

        

        在13145/10000之后得到结果为1,13145/1000之后结果为13,符合我们预期,计算正确,之后13145%10000之后可以得到3145,意思就是13145%10000之后得到的余数是3145,这样是不是比较简单明了。之后依次取模递减,余数也变小,得到结果符合预期。

        我们有思路啦,之后我们写代码将它们乘起来之后相加,之后判断乘得的结果是否与五位数相等,得到我们的变异水仙花数。

        代码实现

        

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
	int i;
	for (i = 10000;i <= 99999;i++)
	{
		int j;
		int sum = 0;
		for (j = 1; j <= 4; j++)
		{
			int k = (int)pow(10, j);
			sum += (i % k) * (i / k);
		}
		if (sum == i)
		{
			printf("%d ", i);
		}
	}
	return 0;
}

        代码分析

        我们首先根据题目要求定义i的值为10000~99999,遍历之后我们就要对每个数进行拆解了。首先我们知道逐步拆解的过程是让i逐渐取模或者/10000,1000,100,10,那么我们要实现这个过程就可以将它们看为i*10^1,i*10^2,i*10^3,i*10^4,这样我们只需要调用四次pow函数,就可以实现逐步取模和除的过程。

        我们定义一个变量k来接收pow函数计算的值,之后定义一个sum接收它们相乘得到的数,判断sum与i是否相等,如果相等,那么这个数就是变异水仙花数。

        其中要注意,我们在计算sum的时候使用+=来将i%k与i/k的值相加起来,sum是它们各个组合相乘之后再相加的和。

        运行结果

        

        结果验证

        我们得到的变异水仙花数有五个,我们挑选其中一个来验证一下

        2*3610+23*610+236*10+2360*0

        

        结果正确,求得变种水仙花数Lily Number共有5个。

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

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

相关文章

Activity——绘制第一张流程图bpmn

文章目录 前言流程符号事件Event活动 Activity网关 GateWay流向 Flow 使用idea绘制第一张流程图设置流程图各节点属性流程图转换图片 问题原因与问题解决汇总问题一&#xff1a;流程乱码问题二&#xff1a;其他idea主题无左侧 Bpmn Editor 设置框问题三&#xff1a;idea右键xml…

DataGrip数据库管理工具安装使用

DataGrip数据库管理工具安装使用 DataGrip介绍 DataGrip是jetbrains旗下的一款数据库管理工具&#xff0c;相信做过java开发的同学都知道&#xff0c;idea就是这家公司发明的。 DataGrip 是JetBrains公司开发的数据库管理客户端工具&#xff08;操作数据库的IDE&#xff0c;…

imx6ull官方源码linux内核移植

1.尝试官方源码 在正点原子给的资料里找到NXP官方原版linux源码&#xff0c;路径为&#xff1a; 1、例程源码->4、 NXP 官方 原版 Uboot和 Linux->linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2。复制并解压。 修改顶层Makefile 编译一下 make -j16 出现以下错误 修改 就…

react17 + antd4 如何实现Card组件与左侧内容对齐并撑满高度

在使用antd进行页面布局时&#xff0c;经常会遇到需要将内容区域进行左右分栏&#xff0c;并在右侧区域内放置一个或多个Card组件的情况。然而&#xff0c;有时我们会发现右侧的Card组件并不能与左侧的栏目对齐&#xff0c;尤其是当左侧栏目高度动态变化时。本文将介绍如何使用…

基于SSM的游戏攻略管理系统

游戏攻略管理系统的构建与实现 一、系统概述二、系统架构与技术选型三、系统功能模块四、系统特点五、总结与展望 随着网络游戏的普及和发展&#xff0c;游戏攻略成为玩家们提升游戏技能、了解游戏机制的重要途径。为了更好地满足玩家需求&#xff0c;提高游戏攻略的管理效率和…

centos7离线安装postgresql13

**一.**安装存储库RPM yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm二.使用yumdownloader下载安装包 mkdir pg_yum cd pg_yum yumdownloader --resolve postgresql13-server**三.**上传rpm包到安…

Python的pytest框架(1)--基本概念、入门

按基础到进阶的顺序&#xff0c;学习Python的pytest框架&#xff0c;本篇文章先讲一讲pytest的基本概念、入门使用规则。 目录 一、pytest基础知识 1、安装 2、pytest框架主要做了什么工作 二、pytest的规则约定、运行方式以及参数详解 1、编写测试用例 模块&#xff08…

GitHub repository - commits - branches - releases - contributors

GitHub repository - commits - branches - releases - contributors 1. commits2. branches3. releases4. contributorsReferences 1. commits 在这里可以查看当前分支的提交历史。左侧的数字表示提交数。 2. branches 可以查看仓库的分支列表。左侧的数字表示当前拥有的分…

asyncio异步编程

参考视频&#xff1a;02 协程_哔哩哔哩_bilibili 1.协程&#xff1a;&#xff08;不是计算机中真实存在的&#xff0c;人为创造出的概念&#xff09;&#xff0c;也可称为微线程。 本质是用一个线程在一段代码中来会切换游走的线程&#xff0c;是一种用户态内的上下文切换技术…

【数据结构与算法】最大公约数与最小公倍数

最大公因数&#xff08;英语&#xff1a;highest common factor&#xff0c;hcf&#xff09;也称最大公约数&#xff08;英语&#xff1a;greatest common divisor&#xff0c;gcd&#xff09;是数学词汇&#xff0c;指能够整除多个非零整数的最大正整数。例如8和12的最大公因数…

Linux系统部署可视化数据多维表格APITable并实现无公网IP远程协同办公

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-G5XdKx1vxX0o0PES {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

说说你对集合的理解?常见的操作有哪些?

一、是什么 集合&#xff08;Set&#xff09;&#xff0c;指具有某种特定性质的事物的总体&#xff0c;里面的每一项内容称作元素 在数学中&#xff0c;我们经常会遇到集合的概念&#xff1a; 有限集合&#xff1a;例如一个班集所有的同学构成的集合无限集合&#xff1a;例如…

上网方法介绍

注册 https://www.cordcloud.biz/user 注册后先充值&#xff0c;充值后还要购买套餐&#xff0c; 充值之后&#xff0c;就可以看到流量了&#xff0c;然后复制订阅地址&#xff0c;到客户端去自动下载 URL拷贝到这个地方&#xff0c;然后点击下载

latex论文写作学习

首先无论是什么文章&#xff0c;最基础的格式都是这个&#xff1a; 如何修改字体呢&#xff1f;&#xff1a; 这样一来就可以在写完之后统一改掉了&#xff0c;用来做标记 最后记得\par 插图&#xff1a; 命令后面的中括号一般就是option

ESP32S3学习笔记(0)—— Vscode IDF环境搭建及OpenOCD调试介绍

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动/单片机/RTOS的实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff…

男生穿什么裤子最百搭?适合男生穿的裤子品牌测评分享

每个伙伴们想必经常都会选择一些裤子&#xff0c;但现在市面上的裤子品牌也实在太多了&#xff0c;好不容易选到了几件好看的裤子&#xff0c;结果质量却很不好。主要就是因为现在有太多商家为了利润而使用一些舒适性、质量差的面料&#xff0c;那么今天就给大家分享一些质量上…

实战小项目 | ESP32-S3和ESP32-C3通过ESP-Mesh-Lite组网 温湿度传感器案例

传统Wi-Fi网络所有终端设备都需要直接与路由器相连&#xff0c;这使得Wi-Fi的覆盖区域受到路由器位置的限制&#xff0c;可接入终端设备的数量也受到路由器容量的限制。而乐鑫ESP-Mesh-Lite Wi-Fi组网方案&#xff0c;所有终端设备都可以与相邻设备连接&#xff0c;摆脱了对路由…

酒店水电能源计量管理系统

酒店水电能源计量管理系统是一种针对酒店行业设计的能源管理系统&#xff0c;旨在实现对水电能源的计量、监测和管理。本文将从系统特点、构成以及带来的效益三个方面展开介绍。 系统特点 1.多元化计量&#xff1a;该系统能够对酒店内的水、电能源进行多元化计量&#xff0c;…

【C++学习】map和set

目录 一、关联式容器 二、键值对 三、树形结构的关联式容器 四、set 4.1 set的介绍 4.2 set的使用 4.2.1 set的模板参数列表 4.2.2 set的构造 4.2.3 set的容量 4.2.4 set修改操作 4.2.5 set的使用举例 五、map 5.1 map的介绍 5.2 map的使用 5.2.1 map的模板参数说…

【Qt 学习笔记】Qt常用控件 | 按钮类控件Check Box的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 按钮类控件Check Box的使用及说明 文章编号&#xff1a;…