题目:用户输入一个数,判断是否是"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.导包(作为当前类的引用)import java.util.Scanner; 1
jdk中封装了一个类Scanner,该类的职责就是接收键盘的输入值,并保存到程序的变量中,体现了程序和用户的交互功能。
2.创建对象Scanner sc=new Scanner(System.in);//在输入Scanner时,按住回车键会自动导入上面的包 1 3.对象调用方法来接收输入值
int X=sc.nextInt();//X是用户输入的数 1 4.先求出各位数上的数字
这里我们需要用到两个运算符:/和%
“/”在数学中是除的意思,但在Java中却是作为一种运算符,用来取整。用法为:比如3/2,在数学中是3/2=1.5,但在Java中3除以2等于1,因为取整,后面的小数0.5会被程序舍弃。
“%”平常是一种百分号,但在Java中也是作为一种运算符,用来取模。用法为:比如10%3为3余1,此时程序生成的结果就是1.
int a,b,c,sum;//定义几个变量a=X/100;//得到百位上的数字 b=X%100/10;//得到十位上的数字 c=X%100%10;//取模得到个位上的数字 1234 5.求各位数的立方之和
sum=a*a*a+b*b*b+c*c*c; 1 6.通过if…else语句判断各位数字立方和是否等于该数本身
if (sum==X){//如果用户输入的数x与各位数字立方相等,该数即为水仙花 System.out.println(X+"是水仙花数" ); }else如果用户输入的数x与各位数字立方不等,该数就不是水仙花 System.out.println(X+"不是水仙花数"); 1234
完整代码展示如下:
import java.util.Scanner; public class Narcissus { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入一个数:"); int X=sc.nextInt(); int a,b,c,sum; a=X/100; b=X%100/10; c=X%100%10; sum=a*a*a+b*b*b+c*c*c; if (sum==X){ System.out.println(X+"是水仙花数" ); }else System.out.println(X+"不是水仙花数"); }
123456789101112131415161718192021测试一下:
请输入一个数: 153 153是水仙花数 请输入一个数: 123 123不是水仙花数 123456
其实,水仙花数也就那么几个,我们不妨用循环求出所有的水仙花数
//要求输入所有的水仙花数(其实就是从100到999之间的,已经给定了的) public class TestNarcissus { public static void main(String[] args) { for(int i =100;i<=999;i++) {//保证是一个三位数,这是前提条件 int a=i/100; int b=i%100/10; int c=i%100%10; int sum=a*a*a+b*b*b+c*c*c; if (sum==i){ System.out.println(i+"是一个水仙花数"); } } } } //原理和上面的一样,就是加个for循环
12345678910111213141516输出一下看看:
153是一个水仙花数 370是一个水仙花数 371是一个水仙花数 407是一个水仙花数 1234
以上就是全部的水仙花数了
相关知识
java基础判断一个数是不是水仙花数
每日经典算法题(三) 求水仙花数
Java 语言实现水仙花数
python输出1到1000内的水仙花数
C语言:输出所有的水仙花数
打印“水仙花数”
python求水仙花数和完数
求100~999之间的水仙花数
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
Java 水仙花数的计算与统计(for循环 / while 循环)
网址: 通过Java实现求水仙花数 https://m.huajiangbk.com/newsview391206.html
上一篇: 使用T |
下一篇: 用VB编写过程找出所有水仙花数所 |