嵌套循环
九九乘法表
for (int i = 1; i <= 9; i++) {
System.out.println();
for (int j = 1; j <= i; j++) {
System.out.print(i + " * " + j + " = " + (i * j) + " ");
}
}
效果:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
求100以内的质数
boolean flag = true;
for (int i = 2; i <= 100; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
}
}
if (flag == true) {
System.out.print(i+" ");
}
flag = true;
}
2 3 5 7 11 13 17 19 23 29 31 37 41
43 47 53 59 61 67 71 73 79 83 89 97
优化求质数算法
简单优化1 :
优化前:
boolean flag = true;
long start = System.currentTimeMillis();
for (int i = 2; i <= 100000; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
}
}
if (flag == true) {
System.out.print(i);
}
flag = true;
}
System.out.println("\n");
long end = System.currentTimeMillis();
System.out.println("花费时间:" + (end - start));
花费时间:13355
优化后加break:
boolean flag = true;
long start = System.currentTimeMillis();
for (int i = 2; i <= 100000; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag == true) {
System.out.print(i);
}
flag = true;
}
System.out.println("\n");
long end = System.currentTimeMillis();
System.out.println("花费时间:" + (end - start));
花费时间:1178
优化三:
boolean flag = true;
long start = System.currentTimeMillis();
for (int i = 2; i <= 100000; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag == true) {
System.out.print(i);
}
flag = true;
}
System.out.println("\n");
long end = System.currentTimeMillis();
System.out.println("花费时间:" + (end - start));
花费时间:87