2014-01-16 3 views
0

Я занимаюсь проблемами программирования, с которыми я делаю вызов 3n + 1. Я сделал код для него, и он отлично работает для меня, НО на веб-сайте он продолжает говорить, что у меня неправильный ответ. Я понятия не имею, почему, если кто-то может дать мне повод для этого, это будет большой помощью. Код ниже.3n + 1 по неизвестной причине

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

class Conjecture { 

    public static void main(String[] args) throws IOException { 

     int array[] = new int[8]; 
     int finalCounter = 0; 
     int currentCounter = 0; 

     Scanner scanner = null; 

     try { 
      scanner = new Scanner(
        new BufferedReader(new FileReader("text.txt"))); 

      int counter = 0; 
      while (scanner.hasNext()) { 
       array[counter] = scanner.nextInt(); 
       counter++; 
      } 
     } finally { 
      if (scanner != null) { 
       scanner.close(); 
       System.out.println("done"); 
      } 
     } 

     for (int loop = 0; loop < array.length; loop += 2) { 
      int i = array[loop]; 
      int j = array[loop + 1]; 
      finalCounter = 0; 
      for (int k = i; k < j; k++) { 
       int x = k; 
       currentCounter = 0; 
       while (x != 1) { 

        if (x % 2 == 0) { 
         x = x/2; 
         currentCounter++; 
        } else if (x % 2 == 1) { 

         x = x * 3 + 1; 
         currentCounter++; 
        } 

        if (currentCounter > finalCounter) { 
         finalCounter = currentCounter; 
        } 

       } 

      } 
      System.out.println(i + " " + j + " " + (finalCounter + 1)); 
     } 

    } 
} 

ответ

1

Вместо чтения из file.txt, вы должны прочитать входные данные от System.in. Поскольку в problem statement не указано количество тестовых случаев, вы должны обрабатывать каждый случай в момент чтения дела. Ваш массив составляет всего 8 элементов, и я уверен, что будет больше тестовых случаев.

Смежные вопросы