【Android面试八股文】荣耀面试算法题:输出所有的水仙花数

embedded/2024/9/25 8:24:14/

文章目录

  • 一、水仙花数的定义
  • 二、算法实现

一、水仙花数的定义

要输出所有的水仙花数,我们需要先了解什么是水仙花数。

水仙花数(Narcissistic number),也称为自恋数、自幂数、阿姆斯特朗数,是指一个 n 位的正整数,其各个位上的数字的 n 次方之和等于它本身。

例如,三位数的水仙花数有 153、370、371 和 407,因为:

  • 153 = 1^3 + 5^3 + 3^3
  • 370 = 3^3 + 7^3 + 0^3
  • 371 = 3^3 + 7^3 + 1^3
  • 407 = 4^3 + 0^3 + 7^3

二、算法实现

package com.newcoder;/*** 水仙花数查找程序。* 定义:水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。*/
public class NarcissisticNumberFinder {/*** 主方法,程序入口,查找并打印所有三位数的水仙花数。* @param args 命令行参数*/public static void main(String[] args) {System.out.println("所有的三位数的水仙花数如下:");// 遍历所有三位数for(int number = 100; number <= 999; number++) {if(isNarcissisticNumber(number)) {// 输出水仙花数System.out.println(number);}}}/*** 判断给定的数字是否是水仙花数。* 水仙花数定义为一个三位数,每一位数字的立方和等于该数本身。* @param number 要判断的数字* @return 如果是水仙花数则返回true,否则返回false*/private static boolean isNarcissisticNumber(int number) {int originalNumber = number;  // 保存原始数字int sumOfCubes = 0;  // 数字各位数字立方和// 计算各位数字的立方和while (number > 0) {int digit = number % 10;  // 取出最低位的数字sumOfCubes += digit * digit * digit;  // 计算立方并累加number /= 10;  // 去掉最低位}// 如果立方和等于原始数字,则是水仙花数return sumOfCubes == originalNumber;}
}
  • 运行结果

    运行上述代码后,会输出所有三位数的水仙花数:

    所有的三位数的水仙花数如下:
    153
    370
    371
    407
    

http://www.ppmy.cn/embedded/92697.html

相关文章

Qt中SQLite数据库的使用

一、安装SQLite 在Qt6中&#xff0c;不再支持 SQLite2&#xff0c;只支持 SQLite3 。因此&#xff0c;有两种方式使用 SQLite&#xff0c;一种是在 SQLite 官网安装 SQLite3&#xff0c;另外一种是直接安装 SQLite Expert。 SQLite Expert 内置了 SQLite。这意味着用户在安装 S…

未来已来:人工智能如何重塑Facebook的用户体验?

在数字化时代的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正成为推动技术进步和用户体验优化的核心力量。Facebook&#xff08;现Meta Platforms&#xff09;作为全球领先的社交媒体平台&#xff0c;正在充分利用人工智能技术&#xff0c;以重塑用户体验&#xff0…

【C语言】预处理详解(下)

文章目录 前言6. 宏和函数的对比7. #和##7.1 #运算符7.2 ##运算符&#xff08;运用较少&#xff0c;了解即可&#xff09; 8. 命名的约定9. #undef &#xff08;了解即可&#xff09;10. 条件编译&#xff08;重点&#xff09;11. 头文件的包含11.1 头文件被包含的方式&#xf…

【nginx】解决k8s中部署nginx转发不会自动更新域名解析启动失败的问题

文章目录 1. 问题2.解决办法3.扩展说明3.1 DNS解析阶段划分3.2 问题说明3.2.1 先看/etc/resolv.conf说明3.2.2 针对第一个问题3.2.3 针对第二个问题 【后端】NginxluaOpenResty高性能实践 参考&#xff1a; https://blog.csdn.net/u010837612/article/details/123275026 1. 问…

SpringBoot自动装配原理

SpringBoot自动装配原理 SpringBootApplication 中包含了三个核心注解 SpringBootConfiguration 声明当前的类是配置类 ComponentScan 组件扫描,默认扫描引导类所在包以及子包 EnableAutoConfiguration 实现SpringBoot自动化配置的核心注解 EnableAutoConfiguration …

24.8.5数据结构|栈

栈-弹夹 1、定义&#xff1a; 栈就是特殊的线性表&#xff0c;与之前的线性表的区别就是增加了约束&#xff0c;只允许在一端插入和删除&#xff0c;就这麽简单。 2、基本操作 栈的插入操作叫&#xff1a;入栈{进栈、压栈}&#xff1b;栈的删除&#xff1a;出栈{退栈&#x…

BitNet——用单个比特进行推理的大语言模型,性能媲美全精度Transformer

概述 为了实现高精确度&#xff0c;大规模语言模型变得越来越大&#xff0c;但随着模型越来越大&#xff0c;其部署也面临挑战&#xff0c;人们担心计算量和能耗会增加。本研究提出了权重为 1 的单比特变换器&#xff0c;结果表明它能以更少的计算资源和更高的能效实现与传统 …

大数据信用报告查询有什么作用?怎么选择查询平台?

随着互联网的快速发展&#xff0c;人们的金融行为越来越多地依赖于网络平台。然而&#xff0c;网络上的金融交易存在着一定的风险&#xff0c;为了有效地防范这些风险&#xff0c;金融机构采用了大数据技术进行风险控制&#xff0c;下面&#xff0c;小易大数据平台将详细介绍大…