/*
需求:在控制台输出所有的 “水仙花数”
水仙花数是一个三位数
水仙花数的个位、十位、百位的数字立方和等于原数
分析:
1. 通过循环获取所有的三位数100-999
2. 将每一个三位数拆分为个位, 十位, 百位
3. 加入if判断条件, 计算是否是水仙花数, 是的话输出打印.
*/
public class Day0302Demo5For {
public static void main(String[] args) {
// 1. 通过循环获取所有的三位数100-999
for(int i = 100; i <= 999; i++){
// 2. 将每一个三位数拆分为个位, 十位, 百位
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
// int bai = i / 100;
// 3. 加入if判断条件, 计算是否是水仙花数, 是的话输出打印.
if( (ge*ge*ge + shi*shi*shi + bai*bai*bai) == i){
System.out.println(i);
}
}
}
}
二、在控制台输出所有的“水仙花数”,要求每行打印2个
/*
需求:在控制台输出所有的“水仙花数”,要求每行打印2个
System.out.print (打印内容); 打印后不换行
System.out.println(打印内容); 打印后换行
分析:
1. 定义变量count,用于保存“打印过”的数量,初始值为0
2. 在判定和打印水仙花数的过程中,拼接空格, 但不换行,并在打印后让count变量+1,记录打印过的数量
3. 在每一次count变量+1后,判断是否到达了2的倍数,是的话,换行。
*/
public class Day0302Demo6For {
public static void main(String[] args){
// 1. 定义变量count,用于保存“打印过”的数量,初始值为0
int count = 0;
for(int i = 100; i <= 900; i ++){
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if((ge*ge*ge + shi*shi*shi + bai*bai*bai) == i){
// 2. 在判定和打印水仙花数的过程中,拼接空格, 但不换行,并在打印后让count变量+1,记录打印过的数量
System.out.print(i + " ");
count++;
if(count % 2 == 0){
// 3. 在每一次count变量+1后,判断是否到达了2的倍数,是的话,换行
System.out.println();
}
}
}
}
}