Я должен напечатать число, которое представляет собой огромную последовательность из 5 и 3 (до 100 000 целых чисел). Вместо того, чтобы хранить его в массиве, я просто сохранил их количество в noOfThrees
и noOfFives
.Эффективно печатать длинную последовательность
Для простоты позвоните по номеру x
. ,
Так как я должен напечатать наибольшее число в последовательности, x
будут первоначально 5, а затем следует с 3-х (я работать логику для печати, если нет никаких 5-й или нет 3-х)
Чтобы распечатать число, Я использую для цикла, как это:
for(int i=0; i<noOfFives; i++)
System.out.print(5);
for(int i=0; i<noOfThrees; i++)
System.out.print(3);
Но если x
является 100000 долго INT число, оно занимает около 4-5sec печатать на консоли, которая не является желательным.
Мое мнение:
- Если
noOfFives
даже, а затем распечатать55
в цикл, который увеличивает производительность на х2 и увеличиваем петлю на два, еще - Используйте тот же цикл, как описано выше , То же самое касается
noOfThrees
.
Но проблема в том, что если это странно, оно снова закончит печать с шагом 1. Как эффективно напечатать эту последовательность?
Какое практическое применение имеет это? Зачем вам нужно быстрее? –
@ AndyTurner Я решаю вызов онлайн-судье, который вызывает тайм-аут, если время выполнения> 4сек –
как насчет [BitSet] (http://docs.oracle.com/javase/7/docs/api/java/util /BitSet.html) вместо простого 'int'? – SomeJavaGuy