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
}
}
