Lukujonon ensimmäinen alkio on . Tämän jälkeen jokainen alkio on kuvaus edellisestä alkiosta. Kuvaus saadaan kertomalla vasemmalta oikealle, montako kertaa mikäkin numero esiintyy luvussa peräkkäin.
Luvussa on yksi ykkönen, joten sen kuvaus on . Luvussa on kaksi ykköstä, joten sen kuvaus on . Luvussa on ensin yksi kakkonen ja sitten yksi ykkönen, joten sen kuvaus on . Luvussa on ensin yksi ykkönen (kuvataan ), sitten yksi kakkonen (kuvataan ) ja lopulta kaksi ykköstä (kuvataan ), joten sen kuvaus on .
Lukujonon ensimmäiset 6 alkiota ovat siis , , , , , .
Tehtäväsi on selvittää, mikä on lukujonon kohdassa oleva alkio. Voit olettaa, että on enintään .
Python
Toteuta tiedostoon sequence.py
funktio generate
, joka palauttaa halutun alkion merkkijonona.
def generate(n): # TODO if __name__ == "__main__": print(generate(1)) # 1 print(generate(2)) # 11 print(generate(3)) # 21 print(generate(4)) # 1211 print(generate(5)) # 111221
Java
Toteuta tiedostoon Sequence.java
metodi generate
, joka palauttaa halutun alkion merkkijonona.
public class Sequence { public String generate(int n) { // TODO } public static void main(String[] args) { Sequence s = new Sequence(); System.out.println(s.generate(1)); // 1 System.out.println(s.generate(2)); // 11 System.out.println(s.generate(3)); // 21 System.out.println(s.generate(4)); // 1211 System.out.println(s.generate(5)); // 111221 } }