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