Java输出所有三位數的”水仙花数”
package com.pku.wuyu.io;
/* * 需求:在控制台输出所有的”水仙花数” * * 分析: * 什么是水仙花数呢? * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 * 举例:153就是一个水仙花数。 * 153 = 1*1*1 + 5*5*5 + 3*3*3 * * A:三位数其实就告诉了我们水仙花数的范围 * 100-999 * B:如何获取一个数据的每一个位上的数呢? * 举例:我有一个数据153,请问如何获取到个位,十位,百位 * 个位:153%10 = 3; * 十位:153/10%10 = 5; * 百位:153/10/10%10 = 1; * 千位:... * 万位:... * C:让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出 */
public class Demo01 {
public static void main(String[] args) {
//通过循环获取到每一个三位数
for(int x=100; x<1000; x++) {
//获取个位,十位,百位
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
//让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出
if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
System.out.println(x);
}
}
}
}/*153 370 371 407 */
统计”水仙花数”共有多少个
/* * 需求:统计”水仙花数”共有多少个 * * 分析: * A:定义统计变量,初始化值是0 * B:获取三位数,用for循环实现 * C:获取三位数的个位,十位,百位 * D:判断这个三位数是否是水仙花数,如果是,统计变量++ * E:输出统计结果就可以了 */
public class Demo02 {
public static void main(String[] args) {
//定义统计变量,初始化值是0
int count = 0;
//获取三位数,用for循环实现
for(int x=100; x<1000; x++) {
//获取三位数的个位,十位,百位
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
//判断这个三位数是否是水仙花数,如果是,统计变量++
if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
count++;
}
}
//输出统计结果就可以了
System.out.println("水仙花数共有:"+count+"个");
}
}