案例1:在控制台输出所有的“水仙花数”
什么是水仙花数:
1.水仙花数是一个三位数,如:111,222,333,370,371,520,999
2.水仙花数的个位、十位、百位的数字立方和等于原数
如:
1³ + 2³ + 3³ = 1 + 8 + 27 = 36 ≠ 123 (不是水仙花数)
3³ + 7³ + 1³ = 27 + 343 + 1 = 371 = 371 (是水仙花数)
/**
* 输出水仙花数
*/
public static void test() {
for (int i = 100; i < 1000; i++) {
int a = i % 10; // 个位
int b = i % 10 % 10; // 十位
int c = i % 10 % 10 % 10; // 百位
if (a * a * a + b * b * b + c * c * c == i) {
System.out.println(i); // 输出水仙花数
}
}
}
案例2:珠穆朗玛峰
世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
/**
* 珠穆娜玛峰高度
*/
public static void test4() {
int count = 0; // 折叠次数
double houdu = 0.1; // 纸张厚度
while (houdu <= 8844430) {
houdu *= 2;
count++;
}
System.out.println(count); // 折叠次数(27次)
}
网友评论