sábado, 22 de setembro de 2018

URI PROBLEMA 1960 - Numeração Romana para Números de Página SOLUÇÃO EM PYTHON

URI Online Judge | 1960

Numeração Romana para Números de Página

Por M.C. Pinto, UNILA BR Brazil
Timelimit: 1
A ECI (Editio Chronica Incredibilis ou Editora de Crônicas Incríveis) é muito tradicional quando se trata de numerar as páginas de seus livros. Ela sempre usa a numeração romana para isso. E seus livros nunca ultrapassam as 999 páginas pois, quando necessário, dividem o livro em volumes.
Você deve escrever um programa que, dado um número arábico, mostra seu equivalente na numeração romana.
Lembre que I representa 1, V é 5, X é 10, L é 50, C é 100, D é 500 e M representa 1000.

Entrada

A entrada é um número inteiro positivo N (0 < N < 1000).

Saída

A saída é o número N escrito na numeração romana em uma única linha. Use sempre letras maiúsculas.






















def entrada():
    n = int(input())
    return n

def separacao(n):
    u = n % 10

    n //= 10
    d = n % 10

    n//= 10
    c = n % 10
    return c,d,u

def romanos(c,d,u):
    roma =''
    if c > 0:
        #centena
        if c <= 3:
            roma += 'C'*(c)
        elif c == 4:
            roma += 'CD'
        elif c == 5:
            roma += 'D'
        elif c > 5 and c < 9:
            roma += 'D' + 'C'*(c-5)
        elif c == 9:
            roma += 'CM'

    if d > 0:
        #dezena
        if d <= 3:
            roma += 'X'*(d)
        elif d == 4:
            roma += 'XL'
        elif d == 5:
            roma += 'L'
        elif d > 5 and d < 9:
            roma += 'L' + 'X'*(d-5)
        elif d == 9:
            roma += 'XC'
    if u > 0:
        #unidade
        if u <= 3:
            roma += 'I'*(u)
        elif u == 4:
            roma += 'IV'
        elif u == 5:
            roma += 'V'
        elif u > 5 and u < 9:
            roma += 'V' + 'I'*(u-5)
        elif u == 9:
            roma += 'IX'


    return roma

def main():
    c,d,u = separacao(entrada())
    print(romanos(c,d,u))

main()

Nenhum comentário:

Postar um comentário

URI PROBLEMA 1133 - Resto da Divisão SOLUÇÃO EM C

URI Online Judge | 1133 Resto da Divisão Adaptado por Neilor Tonin, URI   Brasil Timelimit: 1 Escreva um programa que leia 2 valo...