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个。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux: network: icmp with unreachable - admin prohibited filter

最近遇到一个问题&#xff0c;就是对方返回icmp&#xff1a;unreachable - admin prohibited filter&#xff0c;这个错误。是从tcpdump里显示出来的&#xff0c;根据tcpdump的源代码查看&#xff1a; /* rfc1716 */ #ifndef ICMP_UNREACH_FILTER_PROHIB #define ICMP_UNREACH…

Es批量删除DeleteByQueryRequestBuilder

一、DeleteByQueryRequestBuilder DeleteByQueryRequestBuilder是Elasticsearch Java客户端中的一个类&#xff0c;用于构建和执行基于查询条件删除文档的请求。实验结果表明&#xff1a;删除速率大概是每秒3万条左右。 DeleteByQueryRequestBuilder类提供了一种方便的方式来…

Java中的System

文章目录 概要小结 概要 在Java中&#xff0c;System类提供了一些静态方法来实现与系统相关的操作。以下是System类中常用的方法及其含义&#xff1a; System.currentTimeMillis()&#xff1a;返回当前时间&#xff08;以毫秒为单位&#xff09;自1970年1月1日00:00:00 GMT以来…

硬盘当前用户无权限、主机名修改...

将文件夹的权限从root变更为当前用户 su rootchown -R admin1 /media/admin1/hdd1/media/admin1/hdd1为硬盘挂载目录 在 Linux 中使用 /etc/hostname 来更改主机名 除了上面的方法外&#xff0c;我们还可以通过修改 /etc/hostname 文件来达到修改主机名的目的。但这个方法需…

Python中的字典(dict)与集合(set):核心数据结构的比较与应用

Python中的字典&#xff08;dict&#xff09;与集合&#xff08;set&#xff09;&#xff1a;核心数据结构的比较与应用 在Python编程中&#xff0c;字典&#xff08;dict&#xff09;和集合&#xff08;set&#xff09;是两种非常重要的内置数据结构&#xff0c;它们在处理数…

企业管理员工微信必备

在微信私域管理系统后台&#xff0c;管理员可以对销售工作微信进行实时监管&#xff0c;以确保业务员的微信使用符合工作要求&#xff0c;并避免资源的浪费。通过监管业务员在手机端微信的一举一动&#xff0c;包括发送会话的次数、接收消息的次数、添加好友的数据等&#xff0…

芯片低功耗VCLP

​VCLP&#xff08;VC Low Power&#xff09;是Synopsys提供的一款低功耗静态规则检查工具&#xff0c;它能够帮助验证和清洁IEEE 1801 Unified Power Format (UPF)低功耗设计意图&#xff0c;并确保UPF中的功耗意图与实现一致。VCLP通过执行语法和语义检查&#xff0c;有助于在…

【重装系统】分配D盘

1.右键“此电脑”&#xff0c;点击管理 2.选择“存储”–磁盘管理 3.右键未分配磁盘–新建简单卷 4.一路默认设置即可

企业网站建设需要了解什么

在现代商业环境中&#xff0c;企业网站已经成为企业宣传、推广和销售的重要工具。企业网站的建设需要考虑多个因素&#xff0c;包括以下几个方面&#xff1a; 首先&#xff0c;了解企业的目标和定位。企业网站的建设应该围绕企业的目标和定位展开&#xff0c;以达到企业在市场中…

偏微分方程算法之混合边界差分

目录 一、研究对象 二、差分格式 2.1 向前欧拉格式 1. 中心差商 1.1.1 理论推导 1.1.2 算例实现 2. x0处向前差商&#xff0c;x1处向后差商 1.2.1 理论推导 1.2.2 算例实现 2.2 Crank-Nicolson格式 2.2.1 理论推导 2.2.2 算例实现 一、研究对象 这里我们以混合边界…

常见的分类算法及其应用场景

在机器学习和数据科学领域&#xff0c;分类算法是一类重要的算法&#xff0c;用于将数据集中的样本划分到不同的类别中。本文将介绍几种常见的分类算法&#xff0c;并说明它们的具体描述和应用场景。 1. K-最近邻算法&#xff08;KNN&#xff09; KNN 算法是一种基于实例的分…

Linux_iptables防火墙学习笔记

文章目录 iptables 概述四表五链iptables 安装启动iptables 配置详解iptables配置文件iptables配置语法iptables常用实例查看规则修改默认规则保存和备份规则恢复备份的规则清空规则放行SSH服务在ubuntu14.04中iptables规则持久化 iptables 概述 主机型 对主机进行保护 网络型…

iOS分类和扩展的区别

分类:在不改变原有类的基础上&#xff0c;为原有类添加方法。不可定义属性&#xff0c;只能定义getter和setter方法。 作用&#xff1a;一般用来为系统的类扩展方法或者把某个复杂的类的按照功能拆到不同的文件里。 NSStringPhoneNumber.h #import <Foundation/Foundation…

智慧公厕系统厂家,打造创新性智慧公厕的窍门

智慧公厕系统是利用物联网、大数据、云计算、网络通信、自动化控制等技术&#xff0c;监测公厕内部多个方面的变化&#xff0c;从而实现公厕的智能化管理。通过智慧公厕云管理平台&#xff0c;可以实现厕位空余智能引导、环境监测、资源消耗监测、安全防范管理等多种功能&#…

刷代码随想录有感(33):滑动窗口滑行途中框内最大值

又是需要死记硬背理解的题目。 题干如下: 代码&#xff1a; class Solution { private:class MyQueue{deque<int> que;public:void pop(int value){if(!que.empty() && value que.front()){que.pop_front();}}void push(int value){while(!que.empty() &&…

php开发中如何防止抓包工具伪造请求

要防止抓包工具伪造请求&#xff0c;采取一系列的技术和策略来增强应用程序的安全性。以下是一些关键步骤和最佳实践&#xff1a; 1. 使用HTTPS 确保应用程序使用HTTPS协议进行通信。HTTPS通过TLS/SSL加密客户端和服务器之间的数据传输&#xff0c;这使得抓包工具捕获到的数据…

CRMEB多商户商城系统,不止B2B2C

CRMEB多商户商城系统&#xff0c;是将多个商家汇聚到一个平台上开店&#xff0c;就像常见的京东、淘宝等。这个平台上一般包含4种不同角色&#xff0c;即平台运营管理方、入驻商家、供应商、消费者。 因为平台角色的多元化&#xff0c;多商户商城系统也具有联营、自营、招商、…

没想到打脸这么快,AI程序员已经出发了!

大家好啊&#xff0c;我是豆小匠。 先介绍一下本期的主角&#xff1a;Devin&#xff0c;世界上第一位AI程序员&#xff0c;由2023年11月成立的10人初创公司Cognition AI开发。 1. AI程序员已经能做到什么程度 3月13日&#xff0c;Cognition AI公司在X平台&#xff08;原推特&…

完整 ascii 码:eascii

完整 ascii 码 0-31 &#xff1a;不可打印字符32-127&#xff1a; 可打印字符128-255&#xff1a;扩展字符 ASCII&#xff08;American Standard Code for Information Interchange&#xff0c;美国信息交换标准代码&#xff09;是基于拉丁字母的一套电脑字符编码标准&#xff…

基于SSM大健康老年公寓管理系统设计与实现【Java毕业设计·安装调试·代码讲解·文档报告】

&#x1f34a;作者&#xff1a;北友舰长 &#x1f34a;简介&#xff1a;从事毕业论文代写&#xff0c;计算机毕业设计定制&#xff0c;Java程序开发&#xff0c;可定制化项目、 项目源码、代码讲解、文档撰写、ppt制作等等 &#x1f345; 文末获取源码联系 &#x1f447;&#…