1.水仙花*
需求:在控制台输出1000以内的所有“”水仙花数“”
什么是水仙花数?水仙花数是个位、十位、百位的立方和等于原数的数。比如:333+777+111=371.`
public class ShuiXianHua {
public static void main(String[] args) {
//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
/*分析:水仙花数是指:一个三位数,其各位数字立方和等于该数本身。
*/
for(int i=1;i<1000;i++) {
//在计算之前获取三位数中每个位上的值
int bai=i/100;
int shi=i/10%10;
int ge=i%10;
//判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i) {
//输出满足条件的数字就是水仙花数
System.out.println(i);
}
}
}
}
拓展:如果问1000以内的水仙花数是多少个呢?
public class 水仙花 {
public static void main (String[]_args) {
//定义变量count,用子保存“水仙花数"的数量,初始值为o
int count = 0;
//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
for(int i=100; i<1000; i++){
//在计算之前获取三位数中每个位上的值
int ge = i/10;
int shi = i/10%10;
int bai = i/10/10%10;
//在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
if (ge*ge*ge + shi*shi*shi + bai*bai*bai==i) {
count++;
}
}
//打印输出最终结果
System.out.println("水仙花共有: "+count+"个");
}
}
*## 2.珠穆朗玛峰
需求:世界最高山峰是珠穆朗玛峰8844.43米= 844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折最多少次,可以折成珠穆朗玛峰的高度?
public class Zhu {
public static void main(String[] args) {
int count=0;
int zhu=8844430;
double paper= 0.1;
while(paper<=zhu){
// 纸张的倍数
paper*=2;
count++;
}
System.out.println("需要折叠的次数为:"+count);
}
}