2017-10-07 10 views
0

Donc, je résolvais un problème sur Techgig qui va comme ceci: Là, je dois imprimer la séquence de nombres Fibonacci jusqu'à 10 places dans le tableau et les deux premières entrées ont été entré par l'utilisateur.Comment entrer 1 ~ 2 au lieu de 1 2. InputMismatchException

Mon code va comme:

import java.io.*; 

import java.util.*; 

public class CandidateCode{ 

    public static void main(String args1[]) throws Exception 
    { 
     Scanner sc=new Scanner(System.in); 
     int first=sc.nextInt(); 
     int second=sc.nextInt(); 
     int [] array=new int[10]; 
     array[0]=first; 
     array[1]=second; 
     int i; 
     for(i=2;i<10;i++) 
     { 
      array[i]=first+second; 
      first=array[i-1]; 
      second=array[i]; 
     } 
     System.out.print("{"+array[0]); 
     for(i=1;i<10;i++) 
     { 
      System.out.print(","+array[i]); 
     } 
     System.out.print("}"); 
    } 
} 

Maintenant, l'entrée de l'échantillon devrait aller comme 1 2 et la sortie doit être affiché comme {1,2,3,5,8,13,21,34,55, 89}

Mais ils ont utilisé Test Case comme 1 ~ 2 et le code lors de la compilation donne InputMismatchException. Veuillez me fournir une méthode pour supprimer cette exception

+0

Vous pouvez lire l'entrée sous forme de chaîne, puis la diviser en utilisant '~' comme jeton. – denis

Répondre

0

Ce code résoudra votre problème.

import java.io.*; 
import java.util.*; 

public class CandidateCode{ 

public static void main(String args1[]) throws Exception 
{ 
    Scanner sc=new Scanner(System.in); 
    String s=sc.next(); 
    int first=Integer.parseInt(s.substring(0,s.indexOf("~"))); 
    int second=Integer.parseInt(s.substring(s.indexOf("~")+1)); 
    int [] array=new int[10]; 
    array[0]=first; 
    array[1]=second; 
    int i; 
    for(i=2;i<10;i++) 
    { 
     array[i]=first+second; 
     first=array[i-1]; 
     second=array[i]; 
    } 
    System.out.print("{"+array[0]); 
    for(i=1;i<10;i++) 
    { 
     System.out.print(","+array[i]); 
    } 
    System.out.print("}"); 
} 
} 

Lire une chaîne d'entrée de format "Num1 ~ Num2" puis extraire les nombres de cette chaîne.

+0

Merci mec. Mais 1 des 3 cas de test échoue toujours. –