学习Java的第一步:学会用电脑的“思维”

      Java对于初学者来说,除了记忆一些需要记住的东西,最重要的就是要改变我们的思维方式。

      我们习惯用自己的思维来思考问题,但在程序中就不行,程序只会执行“是”或“不是”。我们就需要把我们人类的思考方式转变为电脑的思考方式,

不改变我们的思考方式,学习Java程序就会觉得很困难,学习的效率也会很低。

      比如计算最大公约数,用程序只要依次计算两个数能共同被整除的数,再找出最大的就可以了,但对我们人类的思维来说计算量太大。就需要找到简便

方法,但这个简便方法并不一定适用于电脑程序,反而会使程序更复杂。

用人类思维写出来的程序:

import java.util.Scanner;

public class CommonDivisor {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner scan = new Scanner(System.in);
  System.out.println("请输入第一个正整数:");
  int a = scan.nextInt();
  System.out.println("请输入第二个正整数:");
  int b = scan.nextInt();
  int c = 0;
  if (b % a != 0 && a % b != 0) {
   do {
    if (a % 2 != 0 || b % 2 != 0) {
     do {
      if (a > b) {
       a = a - b;
      } else if (a < b) {
       b = b - a;
      }
     } while (a != b);
    } else {
     a /= 2;
     b /= 2;
     c++;
    }
   } while (a != b);
   c = (int) Math.pow(2, c);
   a = b * c;
   System.out.println("最大公约数为:"+a);
  } else {
   if (a > b) {
    System.out.println("最大公约数为:"+b);
   } else {
    System.out.println("最大公约数为:"+a);
   }

  }

 }
}

用程序思维写出来的程序:

import java.util.Scanner;

public class CommonDivisor {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner scan = new Scanner(System.in);
  System.out.println("请输入第一个正整数:");
  int a = scan.nextInt();
  System.out.println("请输入第二个正整数:");
  int b = scan.nextInt();

  int c=a>b?a:b;

 for(;c>0;c--){

       if (a%c==0&&b%c==0){

          break;

   }

  }

    System.out.println("最大公约数为:"+c);

}

}

posted @ 2016-01-24 21:26  DAILU  阅读(303)  评论(0)    收藏  举报