分治思想--小测试(归并排序前序)
1 //1~10000000之间所有7的倍数和末尾含7的数一共有多少个呢 2 public class test { 3 public static void main(String[] args) { 4 int[] i={1,2,3,4,5,6,7,17}; 5 div(i,0,i.length-1); 6 } 7 8 private static void div(int[] i,int start,int end){ 9 if(start<end){ 10 int mid = (start+end)/2; 11 div(i,start,mid); 12 div(i,mid+1,end); 13 isSeven(i,start,mid,end); 14 } 15 } 16 17 private static void isSeven(int[] i,int start,int mid,int end){ 18 boolean flag_l = i[start]%7==0 || i[start]%10==7; 19 boolean flag_r = i[end]%7==0 || i[end]%10==7; 20 System.out.println("======================flag_l=="+flag_l+"============="+i[start]+"=====================flag_r=="+flag_r+"============="+i[end]); 21 } 22 23 /** 24 * 25 * ======================flag_l==false=============1=====================flag_r==false=============2 26 ======================flag_l==false=============3=====================flag_r==false=============4 27 ======================flag_l==false=============1=====================flag_r==false=============4 28 ======================flag_l==false=============5=====================flag_r==false=============6 29 ======================flag_l==true============= 7=====================flag_r==true=============17 30 ======================flag_l==false=============5=====================flag_r==true=============17 31 ======================flag_l==false=============1=====================flag_r==true=============17 32 * 36 * 37 * */ 38 }