编程基本功(二)

【题目一 矩阵的转置】接收用户输入的3行列的矩阵,编写一个函数对该矩阵进行转置操作。例如:

clip_image002

经过转置后,,输出为;

clip_image002[5]

程序源码:

   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:  }
当然实现杨辉三角的方法有方法有很多,此处我列出的只是方便人的思维的算法之一,希望有兴趣的网友另外发表留言,共同进步,谢谢阅读。
posted @ 2012-05-15 12:42  寻梦启示  阅读(2177)  评论(2编辑  收藏  举报