半路轉職想成為工程師的我,真的很害怕學的東西只是皮毛,根本沒辦法上職場。
在網路上常常看到培訓班出來的人,面試被洗臉....
有其中一篇分享是:
一個面試官出了19*9的乘法表,排列的方式還要是
0, m, 1, m-1, 2, m-2…
就是像
1*1=1
1*9=9
1*2=2
1*8=8
1*3=3
1*7=7
1*4=4
1*6=6
1*5=5
然後到19
面試者最後是以失敗告終,詳細故事可以看這邊 : 當我們在學程式時,要學的到底是什麼?
於是我決定來挑戰這一題,看看自己學到現在有沒有搞懂各個函數的用法
目前也只學到迴圈,但有迴圈就可以寫乘法表了,所以來試試吧!
我先在紙上把這個乘法表的關係寫出來,分析出來的結構是
依據上面的例子,可以看出下一行的乘數是 10扣掉上一行的乘數
import java.util.Scanner; public class MainClass { public static void main(String[] args) { for(int x = 1; x<20; x++){ for(int i = 1; i<6; i++){ int m = 10; System.out.println(x+"*"+i+"="+(i*x)); if(i==5) continue; m-=i; System.out.println(x+"*"+m+"="+(x*m)); } System.out.println(); } } }
其中一部分結果>>成功完成19*9乘法表
第二種方法,用一維陣列做
import java.util.Scanner; public class MainClass { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int arr[] = {1,9,2,8,3,7,4,6,5}; int x ; for(x = 1; x<=19; x++){ for(int i = 0; i<9; i++){ System.out.println(x + "*" + arr[i] + "=" + x*arr[i]); } System.out.println("==========="); } } }
讓使用者可以自行輸入要幾乘幾的乘法表:
import java.util.Scanner; public class MainClass { public static void main(String[] args) { //建立乘數陣列 Scanner sc = new Scanner(System.in); System.out.print("請輸入乘數個數:"); int num = sc.nextInt(); int a = 1; //被乘數的排列規則 int arr[] = new int[num]; //建立一個使用者輸入的長度的陣列 for(int i = 1; i<= arr.length; i++){ if(a==(num+1)/2){ arr[i-1] = a; System.out.print(arr[i-1] + " "); break; } arr[i-1] = a; arr[i] = num+1-a; System.out.print(arr[i-1] + " "+ arr[i] + " "); i++; a++; } //輸入被乘數 System.out.print("請輸入被乘數個數:"); int input = sc.nextInt(); for(int i = 1; i<=input; i++){ for(int n = 0; n< arr.length; n++){ System.out.println(i + "*" + arr[n] + "=" + i*arr[n]); } System.out.println("========="); } } }
9/27 更新
public class MainClass { public static void main(String[] args) { for(int x = 1;x<20; x++) { for (int i = 1, j = 9; i <= j; i++, j--) { System.out.println(x+ "*" +i + "=" + x*i); if(i!=j) { System.out.println(x + "*" + j + "=" + x * j); } } System.out.println("--------------"); } } }
讓使用者可以自行輸入要幾乘幾的乘法表(更新):
import java.util.Scanner; public class MainClass { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("請輸入被乘數個數:"); int x = sc.nextInt(); System.out.print("請輸入乘數個數:"); int y = sc.nextInt(); for(int n = 1; n<=x; n++) { for (int i = 1, j = y; i <= j; i++, j--) { if(i!=j){ System.out.println(n + "*" + i +"=" + (n*i) ); } System.out.println(n + "*" + j +"=" + (n*j) ); } System.out.println("-----------"); } } }
全站熱搜