代码段中的逻辑错误?

时间:2016-09-14 10:56:37

标签: java logic

我正在做谷歌代码堵塞的一个问题,我在这一点上陷入困​​境。代码编译正确,但输入'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;
}
}

1 个答案:

答案 0 :(得分:1)

这不是无限循环吗?

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