利用Java写出所有水仙花数,面向新手,详细解答
水仙花数的定义:
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
使用Java编程前注意事项
在用Java编写时一定要首先明确所要用到的语法,避免和我一样,用到什么写什么。
1,首先根据水仙花数的定义可以知道为三位数的int型整数(设为num,以下均使用num)。
2,对于这个三位数整数,需要进行拆分:个、十、百、位,所以需要三个变量(这里设x、y、z)。
3,查看所需要的语句,因为要输出所有的水仙花数,所以优先考虑到for循环。因此需要对num进行for循环遍历。
4,遍历完成整个三位整数之后,需要对每个三位数进行判断(这里一定要注意其赋值问题,如果直接写=,则右侧乘积为boolean类型,无法赋值,使用 ==。)
5,输出Sysout(num)。(一定要在for循环中输出)
源代码
下面展示一些 内联代码片
。
class ForTest2
{
public static void main(String[] args)
{
int i = 0;
int num,x,y,z;
System.out.println("输出的水仙花数分别是: ");
for (num = 100; num < 1000 ; num++ )
{
//"/"用来取整,%用来取余。
x = num/100;
y = num%100/10;
z = num%10;
if(num == x*x*x + y*y*y + z*z*z){
i++;
System.out.println(num);
}
}
System.out.println();//换行
System.out.println("输出的水仙花共有 " + i +"个");
}
}
class ForTest2
{
public static void main(String[] args)
{
int i = 0;
int num,x,y,z;
System.out.println("输出的水仙花数分别是: ");
for (num = 100; num < 1000 ; num++ )
{
//"/"用来取整,%用来取余。
x = num/100;
y = num%100/10;
z = num%10;
if(num == x*x*x + y*y*y + z*z*z){
i++;
System.out.println(num);
}
}
System.out.println();//换行
System.out.println("输出的水仙花共有 " + i +"个");
}
}
##输出结果:
输出的水仙花数分别是:
153
370
371
407
输出的水仙花共有 4个
不足之处,还望指正!😘