Listalla on aluksi kokonaisluku 1. Joka kierroksella poistat listalta pienimmän alkion x ja lisäät listalle alkiot 2x ja 3x. Mikä on listan pienin alkio n kierroksen jälkeen? Voit olettaa, että n on enintään 10^5.
Esimerkiksi kun n=5, lista muuttuu näin:
[1] \rightarrow [2,3] \rightarrow [3,4,6] \rightarrow [4,6,6,9] \rightarrow [6,6,9,8,12] \rightarrow [6,9,8,12,12,18]
Tässä tapauksessa listan pienin alkio lopussa on 6.
Python
Toteuta tiedostoon twothree.py
funktio smallest
, joka antaa vastauksen.
def smallest(n): # TODO if __name__ == "__main__": print(smallest(1)) # 2 print(smallest(5)) # 6 print(smallest(123)) # 288 print(smallest(55555)) # 663552
Java
Toteuta tiedostoon TwoThree.java
metodi smallest
, joka antaa vastauksen.
public class TwoThree { public int smallest(int n) { // TODO } public static void main(String[] args) { TwoThree t = new TwoThree(); System.out.println(t.smallest(1)); // 2 System.out.println(t.smallest(5)); // 6 System.out.println(t.smallest(123)); // 288 System.out.println(t.smallest(55555)); // 663552 } }