[Java]输入一个数,输出比这个数小的水仙花数

简介: 水仙花数

源码:

import java.util.Scanner;


public class shuixianhua {

   public static void main(String[] args) {

       Scanner sc = new Scanner(System.in);

       System.out.println("请输入一个整数");

       int num = sc.nextInt();

       //定义水仙花数各个位数与自身长度[ String.valueOf("int数字").length ]的次方的和
       int sum;

       //for循环输出比输入的数字【 num 】小的数字【 i
       for (int i = 10; i <= num; i++) {

           //初始化sum
           sum = 0;

           //定义一个int数字【 num1 】来替代【 num 】来计算水仙花数,因为需要用【 num 】确定【 i 】的数字
           int num1 = i;

           //定义一个int类型【 length 】得到【 num1 】的位数,也就是循环出来的比【 num 】小的数
           int length = String.valueOf(num1).length();

           //计算水仙花数的while循环,循环次数为【 length
           while (num1 != 0) {

               //先取个位数
               int gewei = num1 % 10;

               //再将个位数乘以数【 i 】位数的次方
               sum = sum + (int)Math.pow(gewei, length);

               //将个位数从【 num1 】中减去
               num1 = num1 / 10;

               //重新计算下一个个位
           }

           //判断是否是水仙花数
           //不能用【 num1 】比较,因为【 num1 】已经为0
           if (sum == i) {

               System.out.println(i+"是水仙花数");

           }

           // i 】是将要得到的水仙花数,【 num 】是确定【 i 】的范围 ,【 num1 】是用来计算水仙花数的,会改变
       }

   }

}

执行结果:

image.png

相关文章
|
Java
java 打印水仙花数(通俗易懂)
Java中如何打印出水仙花数,详解!
425 0
java 打印水仙花数(通俗易懂)
|
机器学习/深度学习 JavaScript 前端开发
使用不同语言实现水仙花数(python | c++ | java | javascript | php)
使用不同语言实现水仙花数(python | c++ | java | javascript | php)
97 0
|
Java
Java经典编程习题100例:第5例:输出所有的水仙花数
Java经典编程习题100例:第5例:输出所有的水仙花数
105 0
JAVA-水仙花数
JAVA-水仙花数
331 0
|
Java
1、Java——三种方式循环出水仙花数
1、Java——三种方式循环出水仙花数
530 0
|
Java
Java 水仙花数(解析说明)
水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:13+53+33=153)
420 0
|
Java
JAVA实现输入一个数判断是否是水仙花数(不限位数)
JAVA实现输入一个数判断是否是水仙花数(不限位数)
183 0
JAVA实现输入一个数判断是否是水仙花数(不限位数)
(JAVA编程练习):今天练习“水仙花数”+“九九乘法表”。
(JAVA编程练习):今天练习“水仙花数”+“九九乘法表”。
(JAVA编程练习):今天练习“水仙花数”+“九九乘法表”。
|
Java
水仙花数JAVA
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
105 0