解决方案 »

  1.   

    参考下我的,你的我把次数改为20就卡死了,估计你这个if((one+i)%7==0||(one+i-7)%10==0) 算法有问题static void paishou(int m){//输入连续m次拍手次数
         boolean b=false;
         for(long i=1;i<999999999;i++){
        
         if(i%7==0 || include7(i)){
         int k=0;
         for(long j=i;j-i<=m;j++){
         if(j%7==0 || include7(j)){
         k++;
         if(k==m){
         System.out.println("连续"+m+"次拍手,第一次拍手的数为:"+(j-k));
         b=true;
         break;
         }
         }else break;
         }
         }else continue;
         if(b) break;
         }
        }
        
        static boolean include7(long i){
         String str=String.valueOf(i);
         if(str.indexOf("7")!=-1) return true;
         return false;
        }
      

  2.   

    static void intPaiShou(int count){
    int i = 1;
    //连续次数
    int lCount = 0;
    int[] intArr = new int[count];
    while(true){
    System.out.println(i);
    boolean isContinue = false;
    for(int x = 0; x < count; x++){
    //如果报到7的倍数(7,14,21,28……)或者包含数字7的数(7,17,27,37……)
    if((i - x) != 0 && (i - x) % 7 == 0 || (i - x) % 10 == 7){
    isContinue = true;
    intArr[x] = (i - x);
    }else{
    isContinue = false;
    break;
    }
    }
    if(isContinue){
    for(int j : intArr){
    System.out.println(j);
    }
    break;
    }
    i++;
    }
    }
      

  3.   

    算法有问题。
    (i - x) % 10 == 7只能保证末尾是7~嗯,理解错误。static void intPaiShou(int count,int n){
    int i = 1;
    int[] intArr = new int[count];
    while(true){
    System.out.println(i);
    boolean isContinue = false;
    for(int x = 0; x < count; x++){
    //如果报到7的倍数(7,14,21,28……)或者包含数字7的数(7,17,27,37……)
    if((i - x) != 0 && (i - x) % 7 == 0 || (i - x) % 10 == 7 || include7(i - x)){
    isContinue = true;
    intArr[x] = (i - x);
    }else{
    isContinue = false;
    break;
    }
    }
    if(isContinue){
    for(int j : intArr){
    System.out.println("连续拍" + count + "手的num:" + j);
    }
    break;
    }
    i++;
    }
    }
     
     
       static boolean include7(long i){
             String str=String.valueOf(i);
             return str != null && str.trim().indexOf("7") != -1;
       }
    这样修改即可