Обновление производительности - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь выполнить онлайн-упражнение, в котором просим нас вычислить наименьшее общее кратное n чисел. Запись дает нам число, представляющее n чисел, которые появятся на следующей строке, а затем строку с числами, которые мы должны использовать для вычисления lcm.

Онлайн-судья запускает Openjdk1.7 и с код здесь выставлен я получаю 0,09 секунд выполнения. Я видел парня, который получает 0,008 с java.

Не могли бы вы помочь мне улучшить производительность моего решения?

Спасибо!

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Problema381 {

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

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

       int x = Integer.valueOf(reader.readLine());
       int res, temp, aaux, bux, a, b;
       while(x != 0) {

           res = 1;

           String[] strs = reader.readLine().trim().split("\\s+");

           for (int j = 0; j < x; j++) {

               temp = 1;               
               aaux = res;
               a = aaux;               
               bux = Integer.valueOf(strs[j]);
               b = bux;            
               do {
                   temp = bux;
                   bux = aaux % bux; // % is remainder
                   aaux = temp;
               } while (bux != 0);

               res =  a * (b / temp);
           }
           System.out.println( res );
           x = Integer.valueOf(reader.readLine());
       }
       reader.close();
    }
}

1 Ответ

0 голосов
/ 11 февраля 2020

Взгляните на простой алгоритм для наименьшего общего множителя. Это может дать вам некоторое ускорение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...