2016-03-21 12 views
-2

Ich habe vor kurzem in kompetitivem Programm von C nach Java gewechselt. Aber jede Lösung, die ich einreiche, zeigt mir NZEC-Laufzeitfehler. Eine solche Frage ist https://www.codechef.com/problems/FCTRL2 und meine Lösung istWarum funktioniert dieser Code nicht? 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; 
    } 
} 

Bitte helfen Sie mir den Fehler in meiner Lösung zu finden, was zu Laufzeitfehler NZEC jedes Mal. Meine Lösung zeigt die korrekte Ausgabe, wenn sie auf meinem Computer ausgeführt wird.

+1

Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein bestimmtes Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels.] (Http://stackoverflow.com/help/mcve) – user7

+0

nicht sicher, was das Problem ist, aber warum erstellen Sie mehrere Scanner? – Ramanlfc

+0

Versuchen Sie, nur einen Scanner zu erstellen – user7

Antwort

1

Der NZEC-Fehler wird aufgrund mehrerer Scanner-Objekte generiert, die System.in gleichzeitig verwenden. Die Verwendung von nur einem Scanner-Objekt löst das Problem des Laufzeitfehlers NZEC.

Verwandte Themen