水仙花数(Java语言)——最基础全面的讲解

Posted Madesunny

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了水仙花数(Java语言)——最基础全面的讲解相关的知识,希望对你有一定的参考价值。

题目:判读一个整数是否是水仙花数

所谓水仙花数是一个三位数,其各个位上数字立方和等于它本身。

例如:153 = 1*1*1+3*3*3+5*5*5

首先进行思路分析:

1. 首先要得到此数百位、十位、个位上的数字,然后用 if 判断他们的立方和是否相等。

2. 定义此数为 n(以153为例进行讲解)

3. n 的百位 = n / 100 (153 / 100 = 1)

4. n 的十位 = n % 100 / 10 (153 % 100 = 53,53 / 10 = 5)

5. n 的个位 = n % 10 (153 % 10 = 3)

6.要是想要更加严谨,可以先判断此数是否为三位数,因为水仙花数只能是三位数。

补充:运算符介绍

/ 除号:整数除和小数除是有区别的。整数之间做除法时,只保留整数部分而舍弃小数部分,例如10.0 / 4 = 2.5,10 / 4 =2 。所以153 / 100 = 1。

% 取模,取余:本质是 a % b = a - a / b * b。但是我们一般认为是其被除之后的余数,例如10 / 3 = 1。所以153 % 100 = 53,然后53 / 10 = 5。

代码展示: 

import java.util.Scanner;   //引入Scanner包
public class Exercise06
	public static void main (String[]args)
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个三位数");
		int n = sc.nextInt();

		// 核心代码部分

		int n1 = n / 100;
		int n2 = (n % 100) / 10;
		int n3= n % 10;

		// if判断是否相等

		if(n < 1000 && n > 99)   //判断是否为三位数
			if(n ==(n1*n1*n1 + n2*n2*n2 + n3*n3*n3))
				System.out.println("这个数是水仙花");
			
			else
				System.out.println("这个数不是水仙花数");
			
		else                    //不是三位数则输出有误
			System.out.println("输入有误,请重新输入");
		
	

运行结果展示:

 

以上为完整的判断一个数是否为水仙花数的解析

拓展:输出所有的水仙花数  

 因为水仙花数是三位数,所以我们在100-1000之间进行判断即可。

 思路分析:

1. 利用for循环,遍历100-1000之间的数。

2. 输出水仙花数。

代码展示: 

import java.util.Scanner;
public class Exercise06
	public static void main (String[]args)

		int n;

		//for循环遍历100-1000

		for(n=100; n< 1000; n++)

		//水仙花数代码

		int n1= n / 100;
		int n2= (n % 100) / 10;
		int n3= n % 10;	

		// 判断是否为水仙花数

		if(n == (n1*n1*n1 + n2*n2*n2 + n3*n3*n3))
				System.out.println(n);
			
		
	

运行结果展示:

 

以上为输出水仙花数解析。

 

JAVA返回值以及闰年完全数质数水仙花数讲解。发布不易只求一赞!

有参数有返回值的方法
1)有参数有返回值的方法的定义和调用
*有参数有返回值的方法的定义如下:
语法:
    访问修饰符  返回值类型 方法名(形式参数列表)
            方法体
            return表达式;

*有参数有返回值的方法的调用如下:
语法:
     数据类型   变量名=方法名(实际参数列表)
    
*方法的返回值也称为方法值,是指方法被调用、执行后,返回给主调方法的值,通过被调方法中的return语句实现。
语法:
     return或return表达式;
return作用:
1)结束被调方法的执行,返回主调方法。
2)返回一个表达式的值,该值将作为方法调用过程中方法的返回值。

值类型参数和引用类型参数有什么区别?
1)当方法的参数是值类型时,因为值类型变量里存放的即变量的值,形参和实参会完成变量值的拷贝。当方法内代码完成形参值的改变时,实参不会同步改变。
2)当方法的参数为引用类型时,因为参数的数据类型为引用类型,变量里存放的是对象的内存地址,所以形参和实参实际是同一个对象,改变实参的,形参也会改变。
什么是质数?
质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

什么是水仙花数?
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
方法返回值的注意事项:
1)方法可以没有返回值,也可以存在返回值,但是最多只能存在一个返回值。
2)方法的返回值可以为变量、常量以及表达式。
3)在无返回值方法中,方法体内可以没有return语句。

什么是完全数?
    完全数就是能成除本身以外的所有数之和=本身。完全数也叫完美数。
    0~10000之间的完全数有:6、28、496、8128

什么是闰年?
    普通闰年:被4整除且不能被100整数。
    世纪闰年:能被400整数

以上是关于水仙花数(Java语言)——最基础全面的讲解的主要内容,如果未能解决你的问题,请参考以下文章

JAVA返回值以及闰年完全数质数水仙花数讲解。发布不易只求一赞!

JAVA返回值以及闰年完全数质数水仙花数讲解。发布不易只求一赞!

JAVA返回值以及闰年完全数质数水仙花数讲解。发布不易只求一赞!

Java基础50道经典练习题——水仙花数

Java基础50道经典练习题——水仙花数

算法之水仙花数(Java语言)