编程基本功(二)
【题目一 矩阵的转置】接收用户输入的3行列的矩阵,编写一个函数对该矩阵进行转置操作。例如:
经过转置后,,输出为;
程序源码:
1: public class ZhunShuZu
2: {
3: public static void main(String[] args)
4: {
5: Scanner sc=new Scanner(System.in);
6: int[][] n=new int [3][3];
7: for(int i=0;i<3;i++)
8: for(int j=0;j<3;j++)
9: {
10: n[i][j]=sc.nextInt();//将输入的整数赋值
11: }
12: reverse(n);
13: for(int i=0;i<n.length;i++)//将准置后的数组输出
14: {
15: for(int j=0;j<n[i].length;j++)
16: {
17: System.out.print(n[i][j]+" ");
18: }
19: System.out.print("\n");
20: }
21: }
22: static void reverse(int[][] n)
23: {
24: for(int i=0;i<n.length;i++)
25: for(int j=0;j<n[i].length;j++)
26: {
27: int temp;
28: temp = n[j][i];
29: n[j][i] = n[i][j];
30: n[i][j] = temp;
31: }
32: }
33: }
测试数据:
1
2
3
4
5
6
7
8
9
1 2 3
4 5 6
7 8 9
【题目二 打印杨辉三角】在屏幕上打印出一个10阶的杨辉三角(如下)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
程序分析:从第零行算起的话,返回为1,第零列也为1,当行等于列是也为1,从第三行起第一列等于上一行的左边一列和上一行的同一列之和。因此可得出如下源码:
1: public class yanghui
2: {
3: public static void main(String[] args)
4: {
5: int i,j;
6: for(i=0;i<10;i++)
7: {
8: for(j=0;j<i+1;j++)
9: System.out.print(f(i,j)+" ");
10: System.out.println();
11: }
12: }
13: public static int f(int m,int n)
14: {
15: if(m==0||n==m||n==0)
16: return 1;
17: else
18: return (f(m-1,n)+f(m-1,n-1));
19: }
20: }
当然实现杨辉三角的方法有方法有很多,此处我列出的只是方便人的思维的算法之一,希望有兴趣的网友另外发表留言,共同进步,谢谢阅读。