java算法题每日一练01,java入门简单算法题小练
1.给数组做反序
public class Ak01 { public static void main(String[] args) { int[] a = new int[]{22,48,41,2,7,9}; int start=0; int end=a.length-1; int size = a.length; for(int i = 0;i<size/2;i++) { int temp; temp = a[start]; a[start]=a[end]; a[end]=temp; start++; end--; } for(int i=0;i<size;i++) { System.out.print(a[i]+"\t"); } } }
打印结果:
9 7 2 41 48 22
2,3 :判断一个数是不是质数,打印100内的所有质数,明显可以放在一块,同时理解这种大问题拆分成一层一层小问题的解题思路。
public class Ak02 { public static void main(String[] args) { //注意拆分问题,求100内的质数,先考虑什么是质数。 for(int i=0;i<100;i++) { if(isReal(i)) { System.out.print(i+"\t"); } } } //判断是否是质数 static boolean isReal(int i){
//小于2直接返回 if(i<2)return false;
//等于2确定是质数直接返回结果 if(i==2) { return true; }
//大于2后更有规律,程序更易编写,所以我从2开始循环。 if(i>2) { for (int j = 2; j <= i/2; j++) { if(i%j==0) { return false; } } } return true; } }
打印结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
一点小总结:初学者练题并不是一定要写多难的题,反而是练简单的题,让自己更加能用程序表达好自己脑子里想好的步骤。就像写作文一样把脑海中的景象多用文字描述,久而久之就会写的得心应手了。