2016-03-21 9 views
-2

私は最近競争のあるプログラミングでCからJavaに移行しました。しかし、私が提出した解決策は私にNZECランタイムエラーを表示します。そのような質問はhttps://www.codechef.com/problems/FCTRL2 で、私の解決策は、親切に私はランタイムエラーNZEC毎回、その結果、私の溶液中のエラーを見つけるのに役立つこのコードが動作しないのはなぜですか? FCTRL2

import java.util.Scanner; 
import java.math.BigInteger; 

class Solution{ 
    public int t, i=0; 
    public BigInteger N; 
    public static void main(String args[]){ 
     Solution sol = new Solution(); 
     sol.scanT(); 
     sol.testCase(); 
     System.exit(0); 
    } 

    public void scanT(){ 
     Scanner sc = new Scanner(System.in); 
     t = sc.nextInt(); 
     if(t>100 || t<1){ 
      return; 
     } 
    } 

    public void testCase(){ 
     Scanner sc = new Scanner(System.in); 
     for(i=0; i<t; i++){ 
      N = sc.nextBigInteger(); 
      if(N.compareTo(BigInteger.ONE)<0 || N.compareTo(BigInteger.valueOf(100))>0){ 
       return; 
      } 
      BigInteger z = factorial(); 
      System.out.println(z); 
     } 

    } 

    public BigInteger factorial(){ 
     BigInteger Fact = N; 
     while(N.compareTo(BigInteger.valueOf(2))>0){ 
      Fact = Fact.multiply(N.subtract(BigInteger.ONE)); 
      N = N.subtract(BigInteger.ONE); 
     } 
    return Fact; 
    } 
} 

です。私の解決策は、私のコンピュータ上で実行すると正しい出力を示します。

+1

デバッグヘルプ(「なぜこのコードは機能していませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) – user7

+0

問題の内容は不明ですが、なぜ複数のスキャナを作成していますか? – Ramanlfc

+0

スキャナを1つだけ作成してみてください – user7

答えて

1

NZECエラーは、System.inを同時に使用する複数のScannerオブジェクトのために生成されます。 Scannerオブジェクトを1つだけ使用すると、ランタイムエラーNZECの問題が解決されます。

関連する問題