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

水仙花数(华为OD)

题目描述

所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。
 
例如153是水仙花数,153是一个3位数,并且153 = 13 + 53 + 33

输入描述

第一行输入一个整数n,表示一个n位的正整数。n在3到7之间,包含3和7。
 
第二行输入一个正整数m,表示需要返回第m个水仙花数。

输出描述

返回长度是n的第m个水仙花数。个数从0开始编号。
 
若m大于水仙花数的个数,返回最后一个水仙花数和m的乘积。
 
若输入不合法,返回-1。

运行结果

  1. 输入:4 1  输出:8208  说明:8208是第一个水仙花数
  2. 输入:7 5  输出:49631575  说明:5超出范围,所以最后一个水仙花数和5的乘积
  3. 输入:8 2  输出:49631575  说明:8超出范围

题目解析

本题的水仙花数最长有7位,这7位很少,我们可以直接提前计算好3~7位的所有水仙花数来配置为字典,进行打表查询,考试时怎么记得有哪些数字是水仙花数字呢,但是我已经写很简单的源码提供:

#include<stdio.h>
#include<math.h>
int main() {int x, y, z, a, b, c, d;int i;printf("3位数 -> 水仙花数分别为:");for (i = 100; i <= 999; i++) {x = i / 100;y = i / 10 % 10;z = i % 10;if (i == (int) pow(x, 3) + (int) pow(y, 3) + (int) pow(z, 3)) {printf("%d ", (int) pow(x, 3) + (int) pow(y, 3) + (int) pow(z, 3));}}printf("\n");printf("4位数 -> 水仙花数分别为:");for (i = 1000; i <= 9999; i++) {x = i / 1000;y = i / 100 % 10;z = i / 10 % 10;a = i % 10;if (i == (int) pow(x, 4) + (int) pow(y, 4) + (int) pow(z, 4) + (int) pow(a, 4)) {printf("%d ", (int) pow(x, 4) + (int) pow(y, 4) + (int) pow(z, 4) + (int) pow(a, 4));}}printf("\n");printf("5位数 -> 水仙花数分别为:");for (i = 12345; i <= 99999; i++) {x = i / 10000;y = i / 1000 % 10;z = i / 100 % 10;a = i / 10 % 10;b = i % 10;if (i == (int) pow(x, 5) + (int) pow(y, 5) + (int) pow(z, 5) + (int) pow(a, 5) + (int) pow(b, 5)) {printf("%d ", (int) pow(x, 5) + (int) pow(y, 5) + (int) pow(z, 5) + (int) pow(a, 5) + (int) pow(b, 5));}}printf("\n");printf("6位数 -> 水仙花数分别为:");for (i = 100000; i <= 999999; i++) {x = i / 100000;y = i / 10000 % 10;z = i / 1000 % 10;a = i / 100 % 10;b = i / 10 % 10;c = i % 10;if (i == (int) pow(x, 6) + (int) pow(y, 6) + (int) pow(z, 6) + (int) pow(a, 6) + (int) pow(b, 6) + (int) pow(c, 6)) {printf("%d ", (int) pow(x, 6) + (int) pow(y, 6) + (int) pow(z, 6) + (int) pow(a, 6) + (int) pow(b, 6) + (int) pow(c, 6));}}printf("\n");printf("7位数 -> 水仙花数分别为:");for (i = 1000000; i <= 9999999; i++) {x = i / 1000000;y = i / 100000 % 10;z = i / 10000 % 10;a = i / 1000 % 10;b = i / 100 % 10;c = i / 10 % 10;d = i % 10;if (i == (int) pow(x, 7) + (int) pow(y, 7) + (int) pow(z, 7) + (int) pow(a, 7) + (int) pow(b, 7) + (int) pow(c, 7) + (int) pow(d, 7)) {printf("%d ", (int) pow(x, 7) + (int) pow(y, 7) + (int) pow(z, 7) + (int) pow(a, 7) + (int) pow(b, 7) + (int) pow(c, 7) + (int) pow(d, 7));}}return 0;
}

我们可以看到所有水仙花数,直接复制进行打表法,这道题实现逻辑并不难,大家可以看下面算法源码

C算法源码

#include<stdio.h>
int main() {int n, m;scanf("%d", &n);scanf("%d", &m);if (3 <= n && 7 >= n && 0 <= m) {int daffodil[8][8];int daffodilSize[8];daffodil[3][0] = 153; daffodil[3][1] = 370; daffodil[3][2] = 371; daffodil[3][3] = 407;daffodilSize[3] = 4;daffodil[4][0] = 1634; daffodil[4][1] = 8208; daffodil[4][2] = 9474;daffodilSize[4] = 3;daffodil[5][0] = 54748; daffodil[5][1] = 92727; daffodil[5][2] = 93084;daffodilSize[5] = 3;daffodil[6][0] = 548834;daffodilSize[6] = 1;daffodil[7][0] = 1741725; daffodil[7][1] = 4210818; daffodil[7][2] = 9800817; daffodil[7][3] = 9926315;daffodilSize[7] = 4;if (m < daffodilSize[n]) {printf("%d", daffodil[n][m]);} else {printf("%lld", (long long) daffodil[n][daffodilSize[n] - 1] * m);}} else {printf("-1");}return 0;
}

相关文章:

水仙花数(华为OD)

题目描述 所谓水仙花数&#xff0c;是指一个n位的正整数&#xff0c;其各位数字的n次方和等于该数本身。 例如153是水仙花数&#xff0c;153是一个3位数&#xff0c;并且153 13 53 33。 输入描述 第一行输入一个整数n&#xff0c;表示一个n位的正整数。n在3到7之间&#x…...

【对话状态跟踪】关心整个对话过程用户完整意图变化

对话状态管理器 核心逻辑是解决键冲突和验证范围有效性&#xff0c; 但需依赖外部输入的正确性。在实际应用中&#xff0c; 可能需要结合用户提示或自动修正逻辑以提高鲁棒性。 NLU 槽 值 对儿 NLU的目的是把自然语言解析成结构化语义。结构化语义有多种表示方式&#xff0c…...

【分享】网间数据摆渡系统,如何打破传输瓶颈,实现安全流转?

在数字化浪潮中&#xff0c;企业对数据安全愈发重视&#xff0c;网络隔离成为保护核心数据的重要手段。内外网隔离、办公网与研发网隔离等措施&#xff0c;虽为数据筑牢了防线&#xff0c;却也给数据传输带来了诸多难题。传统的数据传输方式在安全性、效率、管理等方面暴露出明…...

TikTok创作者市场关闭!全新平台TikTok One将带来哪些改变?

TikTok创作者市场关闭&#xff0c;全新平台TikTok One上线&#xff0c;创作者和品牌将迎来哪些新机遇&#xff1f; 近日&#xff0c;TikTok宣布关闭其原有的创作者市场&#xff08;TikTok Creator Marketplace&#xff09;&#xff0c;并推出全新平台TikTok One。这一消息在社…...

LeetCode hot 100—矩阵置零

题目 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]示例 2&#xff1…...

部署Windows Server自带“工作文件夹”实现企业网盘功能完整步骤

前文已经讲解过Windows Server自带的“工作文件夹”功能&#xff0c;现以Windows Server 2025为例介绍部署工作文件夹的完整步骤&#xff1a; 为了确保您能够顺利部署和充分利用工作文件夹的功能&#xff0c;我将按照以下步骤进行讲解。 请注意&#xff0c;在域环境中部署工作…...

植物大战僵尸杂交版v3.3最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.3版本&#xff01;&#xff01;&#xff01;&#xff0c;有b站账户的记得要给作者三连关注一下呀&#xff01; 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;&#xff1a;https://pan.quark.cn/s/6f2a…...

非关系型数据库和关系型数据库的区别

非关系型数据库&#xff08;NoSQL&#xff09;和关系型数据库&#xff08;SQL&#xff09;的主要区别体现在以下几个方面&#xff1a; 数据模型&#xff1a; 关系型数据库&#xff08;SQL&#xff09;&#xff1a;数据以表格形式存储&#xff0c;数据行和列组成&#xff0c;每个…...

CPU负载高告警问题的定位与优化建议

#作者&#xff1a;猎人 文章目录 背景一&#xff0e;问题排查1.1 找到相应的容器1.2 找到对应的deployment1.3 查看pod日志1.4 查看nginx配置文件1.5 查看deployment的yaml文件 二&#xff0e;优化建议 背景 Docker 版本&#xff1a;19.03.14 Operating System: Red Hat Ent…...

2月28日,三极管测量,水利-51单片机

众所周知&#xff0c;三极管&#xff08;BJT&#xff09;有三个管脚&#xff0c;基极&#xff08;B&#xff09;、集电极&#xff08;C&#xff09;、发射极&#xff08;E&#xff09;&#xff0c;在实际应用中&#xff0c;不可避免地会遇到引脚辨别的问题。接下来就讲下三极管…...

批量提取 Word 文档中的图片

在 Word 文档中&#xff0c;我们可以插入图片、文本、链接等各种各样的资源。在某些场景下我们需要提取这些信息&#xff0c;比如我们需要提取 Word 文档中的图片&#xff0c;将每一个 Word 文档中的图片都提取出来放到一个单独的文件夹中&#xff0c;那么我们应该怎么做呢&…...

C#—Settings配置详解

C#—Settings配置详解 在C#项目中&#xff0c;全局配置通常指的是应用程序的设置&#xff08;settings&#xff09;&#xff0c;这些设置可以跨多个类或组件使用&#xff0c;并且通常用于存储应用程序的配置信息&#xff0c;如数据库连接字符串、用户偏好设置等。 Settings配置…...

UI自动化框架介绍

selenium Pytest Allure 优势 1.1 更高效的自动化测试 Selenium 提供了强大的浏览器自动化能力&#xff0c;可以模拟用户与网页的交互。它能够在不同浏览器上运行测试&#xff0c;确保 Web 应用程序在多种环境下的兼容性。Pytest 是一个非常灵活、简洁的 Python 测试框架&a…...

【工具推荐】在线提取PDF、文档、图片、论文中的公式

网址1&#xff1a;https://simpletex.cn/ai/latex_ocr 网址2: https://www.latexlive.com/home 推荐理由&#xff1a;无需下载&#xff0c;在线使用&#xff0c;直接 截图 CTRLV 效果更佳。...

帮我设计一个c语言学习阶段

以下是一个针对不同学习阶段的C语言学习计划&#xff0c;你可以根据自己的基础和目标进行调整&#xff1a; 第一阶段&#xff1a;基础语法与程序结构&#xff08;第1-4周&#xff09; 目标 熟悉C语言的基本语法和程序结构。 能够编写简单的程序。 学习内容 环境搭建 安装…...

解决windows npm无法下载electron包的问题

1.将nsis.zip解压到C:\Users\XXX\AppData\Local\electron-builder\Cache 2.将winCodeSign.zip解压到C:\Users\XXX\AppData\Local\electron-builder\Cache 3.将electron-v20.3.8-win32-ia32.zip复制到C:\Users\XXX\AppData\Local\electron\Cache 4.将electron-v20.3.8-win32-…...

网络编程 day01

网络编程 day01 0. 网络编程课程介绍1. 认识网络1.网络发展史2.局域网与广域网局域网&#xff08;LAN&#xff09;广域网&#xff08;Wan&#xff09; 3.光猫4.路由器5.交换机与路由器6.网线 2. IP1. 基本概念2. 网络号/主机号&#xff08;二级划分&#xff09;3. IP地址分类整…...

【三.大模型实战应用篇】【4.智能学员辅导系统:docx转PDF的自动化流程】

去年团队庆功宴上,我司CTO端着酒杯过来:“老王啊,咱们现在文档解析做得挺溜了,但老师们总抱怨下载的作业格式乱码…” 我看了眼手机里凌晨三点收到的崩溃警报,把杯里的可乐一饮而尽——得,新的副本又开了。 一、为什么PDF转换比想象中难十倍? 某次用户调研中,数学教研…...

2915. 和为目标值的最长子序列的长度

给你一个下标从 0 开始的整数数组 nums 和一个整数 target 。 返回和为 target 的 nums 子序列中&#xff0c;子序列 长度的最大值 。如果不存在和为 target 的子序列&#xff0c;返回 -1 。 子序列 指的是从原数组中删除一些或者不删除任何元素后&#xff0c;剩余元素保持原来…...

谷仓的安保

Farmer John给谷仓安装了一个新的安全系统&#xff0c;并且要给牛群中的每一个奶牛安排一个有效的密码。一个有效的密码由L(3 < L < 15)个小写字母(来自传统的拉丁字母集a...z)组成&#xff0c;至少有一个元音(a, e, i, o, 或者 u)&#xff0c;至少两个辅音(除去元音以外…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...