aboutsummaryrefslogtreecommitdiff
path: root/challenge-119/paulo-custodio/python/ch-2.py
blob: 0ec51b74bd1175dcd301cfea17ba6fb37b6feb75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python

# Challenge 119
#
# TASK #2 - Sequence without 1-on-1
# Submitted by: Cheok-Yin Fung
# Write a script to generate sequence starting at 1. Consider the increasing
# sequence of integers which contain only 1's, 2's and 3's, and do not have any
# doublets of 1's like below. Please accept a positive integer $N and print the
# $Nth term in the generated sequence.
#
# 1, 2, 3, 12, 13, 21, 22, 23, 31, 32, 33, 121, 122, 123, 131, ...
#
# Example
# Input: $N = 5
# Output: 13
#
# Input: $N = 10
# Output: 32
#
# Input: $N = 60
# Output: 2223

import sys
import re

def next_seq(n):
    while True:
        n += 1
        if re.match(r'^[1-3]+$', str(n)) and not re.search(r'11', str(n)):
            return n

num = int(sys.argv[1])
n = 0
for i in range(num):
    n = next_seq(n)
print(n)