1.单循环练习
1.1 一张纸的厚度是0.01mm,折叠多少次,达到珠穆朗玛峰高度
// 珠穆朗玛峰 8848米
// 纸的厚度0.01mm
// 折叠多少次,达到珠穆朗玛峰高度
double h = 8848000;
int i = 0;//次数
double h1 = 0.01;//当前纸厚度
while(h1<h) {
h1 *= 2;
i++;
}
System.out.println("折叠次数: "+i);
1.2 猴子吃桃:猴子第1天摘了n个桃, 当天吃了一半加1个,
第2天吃了一半加1个,…第9天吃完时剩下1个,设计程序,计算n的值
//思路:倒推--从第9天推到第1天
//第9天吃完后的桃子数
int n = 1;
for(int days = 9;days>=1;days--) {
//n表示第days天吃之前的桃子数
n = (n+1)*2;
}
System.out.println(n);
1.3 球从100米高的地方落下, 落下之后反弹, 反弹高度为原来的一半, 之后又落下/反弹
问: 第9次球落地时所走的路程
//思路:找到每次反弹高度的关系:1/2 路程等于所有反弹路径的2倍的累加和
//定义高度
double h = 100.0;
//定义路程
double s = h;
for(int i= 1;i<=9;i++) {
h = h/2;
s += h*2;
}
System.out.println(s);
**1.4 ** 有1对兔子,长到第3个月开始每个月都生一对兔子,小兔子长到第3个月开始每个月都生一对兔子…请设计程序,输入第10个月多少对兔子?
k n = k n-1 + kn-2
//斐波那契数列
//1 1 2 3 5 8...
//第3项开始,这个数是对应的前两项之和
int a = 1;
int b = 1;
//i表示第几项的项数
for(int i=3;i<=10;i++){
//n表示第i项的数
int n = a+b;
//将第i-1项的值给a
a = b;
//将第i项的值给b
b = n;
}
System.out.println(n);
2.循环嵌套
2.1 输出 1! + 2! + 3! + 4! + 5! + 6! +7!的结果
//第一步:实现7!
int s = 1;
for(int i =1;i<=7;i++){
s*=i;
}
//第二步:实现多个数阶乘的和
int sum = 0;
for(int k=1;k<=7;k++){
//s表示的是k!
int s = 1;
for(int i =1;i<=k;i++){
s*=i;
}
sum += s;
}
System.out.println("结果为"+sum);
2.2 输出9*9乘法表
//例--第3行:3*1=1 3*2=6 3*3 =9
//i表示第1个乘数 j是第2个乘数
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}