2016-09-06 58 views
-1

精確問題http://www.practice.geeksforgeeks.org/problem-page.php?pid=1335構建一個N輸入或門。 OR門否則1用java

構造一個N個輸入或門返回0,如果它的所有輸入都爲0,。 OR門返回0,如果其所有輸入 是0,否則爲1。

  • 輸入:

  • 3 //這些測試用例

  • 2 //這些都是數輸入

  • 1 1 //這些是輸入

  • 3 //這些

  • 輸出:1 // O/P爲第一殼體

  • 0 // o/p第二種情況

這個代碼是造成運行時間錯誤

錯誤,如掃描儀的java:907,JAVA:1530,爪哇:2160

class GFG { 

      static int or(int a[] , int n , int x){ 
       for(int i = 0;i<n;i++) 
       { 
        if(x==0) 
         return 0; 
       } 
       return 1; 
     } 
    public static void main (String[] args) { 
     int a[] = new int[100]; 
     int x= 0; 
     Scanner in =new Scanner(System.in); 
     int t = in.nextInt(); 
     while(t>0){ 
      int n = in.nextInt(); 
      for(int i =0; i<n;i++){ 
       a[i] = in.nextInt(); 
       x =x+(a[i]|a[i+1]); 
      } 
       System.out.println(or(a,n,x)); 
       t--; 
     } 
    } 
} 
+0

你要求一個或門,但你的方法被稱爲XOR。此外,您還有另外兩個不明原因的方法參數。 –

+0

對不起,命名它xor先生,但我想知道我的兩個論點是如何無法解釋的。難怪我知道我問愚蠢的問題,但我是初學者我知道我不是你的水平,但我只是想學習。 – user3427015

+0

你可以在這裏找到這個代碼:http://code.geeksforgeeks.org/CLiX3K – user3427015

回答

0

那麼你的代碼大部分工作,但:

for(int i = 0; i < n; i++) { 
    if(x == 0) 
     return 0; 
} 
return 1; 

等同於:

if(x == 0) return 0; else return 1; 

你想要的是:

for(int i = 0; i < n; i++) { 
    if(a[i] == 0) 
     return 0; 
} 
return 1; 

事實上,你可以消除x完全,但如果你想使用x那就沒有必要將數字存儲在a

版本不陣列

public static void main (String[] args) { 
    int x = 0; // assume x is 0. 
    Scanner in = new Scanner(System.in); 
    int t = in.nextInt(); 
    while(t > 0) { 
     int n = in.nextInt(); 
     x = 0; // reinitialise x each time. 
     for(int i = 0; i < n; i++) { 
      // if and only if all inputs are 0 will x be 0. 
      // if any input is 1 -> x | 1 is 1 no matter what x. So the result will be 1. 
      x = x | in.nextInt(); 
     } 
     System.out.println(x); 
     t--; 
    } 
    in.close(); 
} 

輸入對話框:

Location of input dialog box

您可以使用該網站提供的樣本輸入。

+0

但是你在哪裏或者[i]和[i + 1] – user3427015

+0

基本上我用變量x來存儲值a [i] | a [I + 1] – user3427015

+0

@ user3427015 no。你沒有。 –