CSES - Lukujono

Lukujonon jokainen alkio on pienin positiivinen kokonaisluku, jota ei ole vielä esiintynyt lukujonossa ja jossa on yksi tai useampi toistuva numero.

Lukujono alkaa näin:

11, 22, 33, 44, 55, 66, 77, 88, 99, 100, 101, 110, 111, 112, 113, 114, \dots

Tehtäväsi on etsiä lukujonon kohdassa n oleva luku. Voit olettaa, että n on enintään 1000.

Python

Toteuta tiedostoon sequence.py funktio generate, joka palauttaa halutun lukujonon alkion.

def generate(n):
    # TODO

if __name__ == "__main__":
    print(generate(1)) # 11
    print(generate(2)) # 22
    print(generate(3)) # 33
    print(generate(10)) # 100
    print(generate(123)) # 505

Java

Toteuta tiedostoon Sequence.java metodi generate, joka palauttaa halutun lukujonon alkion.

public class Sequence {
    public int generate(int n) {
        // TODO
    }

    public static void main(String[] args) {
        Sequence s = new Sequence();
        System.out.println(s.generate(1)); // 11
        System.out.println(s.generate(2)); // 22
        System.out.println(s.generate(3)); // 33
        System.out.println(s.generate(10)); // 100
        System.out.println(s.generate(123)); // 505
    }
}