2016-09-14 4 views
0

Я делал один из вопросов, связанных с ошибкой в ​​коде Google, и я застрял в этой точке. Код компилируется правильно, но после ввода «N» он не идет дальше. Похож на логическую ошибку, но когда я сушу запустить код, это выглядит хорошо. Что может быть здесь? Вопрос здесь https://code.google.com/codejam/contest/6254486/dashboardЛогическая ошибка в фрагменте кода?

public class Counting_Sheep 
{ 
static int haha,digit,j; 
static int arr[]=new int[11]; 
public static void main(String args[])throws IOException{ 
    BufferedReader obj=new BufferedReader(new InputStreamReader(System.in)); 
    Scanner in= new Scanner(System.in); 
    System.out.println("Number of test cases"); 
    int t=in.nextInt(); 
    System.out.println("Enter N by Bleatrix"); 
    int n=Integer.parseInt(obj.readLine()); 
    if(n==0){ 
     System.out.println("INSOMNIA"); 
     System.exit(0); 
    } 
    for(int i=1;i<=n+1;i++){ 
     haha=i*n; 
     numbercalculator(haha); 
    } 
    for(int i=0;i<11;i++) 
    System.out.println(arr[i]); 
} 
static void numbercalculator(int a){ 
    while(a>0){ 
     digit=a%10; 
     if(digitIsUnique(digit)){ 
     arr[j]=digit; 
     j++; 
    } 
    } 
} 
static boolean digitIsUnique(int b){ 
    for(int i=0;i<11;i++){ 
     if(b==arr[i]) 
     return false; 
     else 
     return true; 
    } 
    return false; 
} 
} 
+0

Вы пытались запустить его с помощью отладчика? – RealSkeptic

ответ

1

Это не бесконечная петля?

while(a>0){ 
    digit=a%10; 
    if(digitIsUnique(digit)){ 
     arr[j]=digit; 
     j++; 
    } 
} 
+0

Yeaup. Возникла проблема. Это только это. приходилось делать, когда цифра> 0 и после нахождения остатка делить цифру на 10 – AxeManTOBO

Смежные вопросы