题目描述:
2. 输出n=6的三角数字阵:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
分析:
- 用到for循环,显然每循环一次,记一次数,初始变量count用于计数
- 用到一个外循环作为行变量,一个内循环作为列变量,行列之间联系:第 i 行输出 i 列数
- 若要输出n行数,可自行改变n,也可用Scanner
- 注意 print 和 println 的差别
package cn.itcast.text;
public class text06 {
public static void main(String[] args) {
//输出 n = 6 的三角数字阵
int count = 1;
for (int i = 1; i <= 6; i++){ //输出行
for (int j = 1; j<= i; j++){ //输出列
System.out.print(count+"\t");
count++;
}
System.out.println();
}
}
}
输出结果:
3. 输出九九乘法表
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
…
用for循环结合while循环,注意k写在循环内,因为在while循环中,k++的 自增运算,会一直在循环当中使用
package cn.itcast.text;
public class text06 {
public static void main(String[] args) {
//输出 九九乘法表
int a = 0;
for (int i = 1; i <= 9; i++){ // 循环9次
int k = 1;
while (k <= i){
a = i*k;
System.out.print(k+"*"+i+"="+a+"\t");
k++;
}
System.out.println();
}
}
}
输出结果:
4.已知纸张厚度:0.001米,珠峰高度为8848米,求:纸张折叠多少次能达到珠穆朗玛峰的高度
分析: 题目问的是折叠次数,初始厚度m = 0.001,折叠一次 m = 0.002,折叠两次 m = 0.004,折叠三次 m = 0.008,… , 折叠n次 m = 0.001*2n 而 2n并不会等于8848,所以判断条件为 k<8848,继续折叠。不满足条件跳出循环,这里用while或者do…while都可以。
package cn.itcast.text;
public class text06 {
public static void main(String[] args) {
// 珠穆朗玛折纸游戏
double m = 0.001;
int n = 0;//折叠次数
double k = 0;
do {
n++;
k = m* Math.pow(2,n);
}while (k < 8848);
System.out.println("折叠第"+(n-1)+"次,高度为"+m* Math.pow(2,n-1));//测试语句
System.out.println("折叠第"+n+"次,高度为"+k);
}
}
输出结果: