栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

如何快速理解java水仙花数 详细思路讲解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何快速理解java水仙花数 详细思路讲解

该博客专为小白提供,如是有基础可跳过中间部分,之间观看最后部分(中间废话我都觉得多了点

一、首先,我们要了解水仙花数是一个什么概念的数。

        水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。 例如:1*1*1 + 5*5*5+ 3*3*3 = 153。

        三位的水仙花数共有4个:153,370,371,407;

        四位的四叶玫瑰数共有3个:1634,8208,9474;

        五位的五角星数共有3个:54748,92727,93084;

        六位的六合数只有1个:548834;

        七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;

        八位的八仙数共有3个:24678050,24678051,88593477;

        九位的九九重阳数共有4个: 146511208,472335975,534494836,912985153;

        十位的自幂数只有1个:4679307774

二、那么,我们该怎么用java形式的思路解出水仙花数呢?

        首先我们要清楚了解水仙花数的格式,例如三位数水仙花:153、370、371、407

         

        这里我将使用for循环讲解如何解题。

        for循环的格式

for (int i=1;i<=5;i++){
    
}//注意:for关键字后面括号中的3个条件表达式必须用 ;(分号) 隔开

         这里我将讲解三位数水仙花的思路。

       1、我们要求三位的水仙花数,那取值区间将在100-10000之间,但并不包括10000,所以些第二个表达式时应留意。  for循环的初始表达式应该写为100,终止表达式为<10000。这样我们就确定了取值区间。代码如下:

for (int i=100;i<1000;i++){
//功能代码
}

       2、  在for循环中我们要写输出条件。也就是i循环到某个数时判定该数是不是水仙花数,我们该如何判定某个数是不是水仙花数,这就要回顾水仙花的格式了。例如(这里我将使用字母形式):i=a*a*a+b*b*b+c*c*c

        算数运算符都包括:加(+)、减(-)、乘(*)、除(/)、取模(%)、自增(++)、自减(–)、字符串连接符(+)

        这里我们将用到运算符 / 和 % 

//以第一个水仙花数153为例
int a=i%10;//153%10=15.30,取余数3
int b=i/10%10;//153除以10=15.3,15.3%10取余数5
int c=i/100%10;//153除以100=1.53,1.53%10取余数1

        3、然后就是选择条件。

        这里我们将用到if判断

//if else语句语法

if(条件表达式){

//功能代码1

}else{

//功能代码2

}

        我们将写出水仙花的提取条件i=a*a*a+b*b*b+c*c*c(只是格式,和以下代码并无关联),所以在判断条件里就只用写:水仙花数=百位*百位*百位+十位*十位*十位+个位*个位*个位

         在功能代码区写输出即可

if (a*a*a+b*b*b+c*c*c==i){
     System.out.println(+i+" 是水仙花数");
            }

        

好了,教程到此结束,放上整段代码,仅供参考

package com.sanmu;

public class shuixianhuashu {
    public static void main(String args[]){
        for (int i=100;i<1000;i++){
            int a=i%10;
            int b=i/10%10;
            int c=i/100%10;

            if (a*a*a+b*b*b+c*c*c==i){
                System.out.println(i+"="+c+"*"+c+"*"+c+"+"+b+"*"+b+"*"+b+"+"+a+"*"+a+"*"+a+ "  ,他是水仙花数");
            }
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877555.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号