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);
}
}