最近在回顧一些簡單的程式運用,感覺太久沒用都快還給老師了….
因此來複習一些以前上課時老師最喜歡教的東西:最大公因數、最小公倍數、九九乘法表
最大公因數及最小公倍數
迴圈寫法
首先是for迴圈解法:
public class MyClass {
public static void main(String args[]) {
int x = 84; // 數值1
int y = 70; // 數值2
int temp = 1; // 暫存用變數
// 使用 for 迴圈
for (int i = 2; i <= x; i++) {
// 判斷兩數是否都被整除
if (x % i == 0 && y % i == 0) {
temp = i;
}
}
System.out.println("最大公因數:" + temp);
System.out.println("最小公倍數:" + x * y / temp);
}
}
執行結果如下:
最大公因數:14
最小公倍數:420
while解法 如下:
public class MyClass {
public static void main(String args[]) {
int x = 84;
int y = 70;
int in1 = x;
int in2 = y;
int temp = 1;
while (in1 % in2 != 0) {
temp = in2;
in2 = in1 % in2;
in1 = temp;
}
System.out.println("最大公因數:" + in2);
System.out.println("最小公倍數:" + x * y / in2);
}
}
執行結果如下:
最大公因數:14
最小公倍數:420
do-while解法如下:
public class MyClass {
public static void main(String args[]) {
int x = 84;
int y = 70;
int in1 = x;
int in2 = y;
int temp = 1;
do {
temp = in2;
in2 = in1 % in2;
in1 = temp;
} while (in1 % in2 != 0);
System.out.println("最大公因數:" + in2);
System.out.println("最小公倍數:" + x * y / in2);
}
}
執行結果如下:
最大公因數:14
最小公倍數:420
遞迴寫法
public class MyClass {
public static void main(String args[]) {
int x = 84;
int y = 70;
System.out.println("最大公因數:" + gcd(x, y));
System.out.println("最小公倍數:" + x * y / gcd(x, y));
}
private static int gcd(int a, int b) {
if(b == 0)
return a;
else
return gcd(b, a % b);
}
}
執行結果如下:
最大公因數:14
最小公倍數:420
九九乘法表
逐行排列
public class MyClass {
public static void main(String args[]) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i + "x" + j + "=" + i*j + "\t");
}
System.out.println();
}
}
}
結果如下:
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
逐列排列
public class MyClass {
public static void main(String args[]) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "x" + i + "=" + i*j + "\t");
}
System.out.println();
}
}
}
結果如下:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81