你的位置:首页 > Java教程

[Java教程]分治思想


 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=============226     ======================flag_l==false=============3=====================flag_r==false=============427     ======================flag_l==false=============1=====================flag_r==false=============428     ======================flag_l==false=============5=====================flag_r==false=============629     ======================flag_l==true============= 7=====================flag_r==true=============1730     ======================flag_l==false=============5=====================flag_r==true=============1731     ======================flag_l==false=============1=====================flag_r==true=============1732    * 36    * 37    * */38 }