我要打印一個數字,這是一個5和3(最多100,000個整數)的巨大序列。我只是將它們保存在noOfThrees
和noOfFives
之內,而不是將其存儲在數組中。有效地打印一個長序列
爲簡單起見,請致電此號碼x
。 。
由於我必須打印序列中的數量最多,x
將是最初5的再接着用3的(I有工作邏輯打印如果沒有5的或無3'S)
要打印的數量,我使用一個循環是這樣的:
for(int i=0; i<noOfFives; i++)
System.out.print(5);
for(int i=0; i<noOfThrees; i++)
System.out.print(3);
但如果x
是100,000長整型數,大約需要4-5sec到打印在控制檯這是不可取的。
我的看法:
- 如果
noOfFives
爲偶數,則兩個打印55
在for循環,其通過X2提高了性能並增加循環,否則 - 使用相同的環的上述。
noOfThrees
也一樣。
但這裏的問題是,如果它很奇怪,它將再次以1爲步驟結束打印。如何有效打印此序列?
這有什麼實際用途?你爲什麼需要它更快? –
@AndyTurner如果執行時間大於4秒,會導致超時的在線裁判解決一個挑戰 –
[BitSet]怎麼樣(http://docs.oracle.com/javase/7/docs/api/java/util /BitSet.html)而不是一個簡單的'int'? – SomeJavaGuy