e-olymp
favorite We need a little bit of your help to keep things running, click on this banner to learn more
Problems

Roman numerals

published at 6/7/15, 4:21:47 pm

Не усі числа менші за 2000, а лише вхідні дані.

published at 4/8/16, 1:01:45 pm

Компилятор C++ Мы должны вернуть строку, но пишет, что main должен быть int. Как так?

published at 5/27/16, 10:39:50 pm

А как правильно определить ету переменую в Пайтон

published at 3/16/18, 3:56:30 pm

Складна задача, довго прийшлось "шурупати" мозгами

published at 11/5/18, 11:52:43 pm

Авторе протестуйте ось цей код і скажіть Чи по логічному він працює. s = str(input()) s1 = str() s2 = str() y = 0 p = 0 for i in range(0, len(s)): if s[i] != "+": s1 += s[i] else: y = i break for i in range(y + 1, len(s)): s2 += s[i] print(s1, s2) k = 0 for i in range(0, len(s1)): if s1[i] == "I" and i > 0 and s1[i - 1] == "V" or s1[i] == "I" and i > 0 and s1[i - 1] == "X" or s1[i] == "I" and i > 0 and s1[i - 1] == "L" or s1[i] == "I" and i > 0 and s1[i - 1] == "C" or s1[i] == "I" and i > 0 and s1[ i - 1] == "D" or s1[i] == "I" and i > 0 and s1[i - 1] == "M": p -= 1 k = 1 else: if s1[i] == "I": p += 1 elif s1[i] == "V": p += 5 elif s1[i] == "X": p += 10 elif s1[i] == "L": p += 50 elif s1[i] == "C": p += 100 elif s1[i] == "D": p += 500 else: p += 1000 if k == 1: i += 1 k == 0 for i in range(0, len(s2)): if s2[i] == "I" and i > 0 and s2[i - 1] == "V" or s2[i] == "I" and i > 0 and s2[i - 1] == "X" or s2[i] == "I" and i > 0 and s2[i - 1] == "L" or s2[i] == "I" and i > 0 and s2[i - 1] == "C" or s2[i] == "I" and i > 0 and s2[ i - 1] == "D" or s2[i] == "I" and i > 0 and s2[i - 1] == "M": p -= 1 k += 1 else: if s2[i] == "I": p += 1 elif s2[i] == "V": p += 5 elif s2[i] == "X": p += 10 elif s2[i] == "L": p += 50 elif s2[i] == "C": p += 100 elif s2[i] == "D": p += 500 else: p += 1000 if k == 1: i += 1 str = str() while p >= 1000: p -= 1000 str += "M" if p == 999: p -= 999 str += "MI" while p >= 500: p -= 500 str += "D" if p == 499: p -= 499 str += "DI" while p >= 100: p -= 100 str += "C" if p == 99: p -= 99 str += "CI" while p >= 50: p -= 50 str += "L" if p == 49: p -= 49 str += "LI" while p >= 10: p -= 10 str += "X" if p == 9: p -= 9 str += "XI" while p >= 5: p -= 5 str += "V" if p == 4: p -= 4 str += "VI" while p >= 1: p -= 1 str += "I" print(str)

published at 3/2/19, 12:11:08 pm

не могу никак реыть ету задачу киньте кто решение

published at 11/3/19, 10:20:54 pm

git hut can you put this code in github?

published at 11/23/19, 1:25:02 pm

"""RUM REQEMLERI"""

def nums(x): case={ "X":10, "L":50, "D":500, "C":100, "V":5, "I":1, }

return case.get(x)

def netice(y): #netice ingilis dinlinde nedi ona bax! = result

case={
    0:None,
    1:"I",
    4:"IV",
    5:"V",
    9:"IX",
    10:"X",
    50:"L",
    100:"C",
    500:"D",
}
ll = case.keys()
ld = list(ll)
aa = 7
ccc = y
ddd = []
ok = 1
aze =1
for i in range(len(case)):
    while y>=0 and aa>=0:
        if ld[aa]<=y:
            if(aa!=8):
                if ld[aa+1] <= y:
                    aze+=1
                    print(aze,'\taze')
                    y -= ld[aa+1]
                    print(y,'\tssaaaaaascs')
                    ddd += [case.get(ld[aa+1])]
                    aa+=1
            else:
                print("----------------------------")
                y -= ld[aa]
                print(y,'\tssscs')
                ddd += [case.get(ld[aa])]
                print(ddd,'\tddd')
                ok+=1
                print(ok,'ok')

        aa -=1
        print(aa,'\taa')
    return ddd


print("\n")

return case.get(y)

def tapici(ll): cc = [] dd = 0 for i in range(len(ll)): if ll[i] == "None": cc += [] else: cc += [ll[i]] for i in range(len(cc)): dd +=int(cc[i])

return dd

num = input()

other =[] numlis=list(num)

for i in range(len(numlis)): other.append(str(nums(numlis[i])))

for i in range(len(other)): if i<=len(other)-1: if other[i]=="1" and other[i+1]=="5": other[i] = str(int(other[i+1])-int(other[i])) del other[i+1] if other[i]=="1" and other[i+1]=="10": other[i]= str(int(other[i+1])-int(other[i])) del other[i+1]

print (other)

ll =[] ll +=[str(tapici(other))] ff = ll[0] print(ff,'fffffffffff')

bb = [] bb += netice(int(ff)) sss='' if len(bb)>1: for i in range(len(bb)): sss += bb[i] print("CAVAB:\t",sss,end =None) else: print("CAVAB\t",bb[0],end=None)

published at 6/27/20, 2:28:11 pm

С javascript работать невозможно. Попытался понять, что мне дают на вход: Оказалось это какой-то двумерный массив, размер которого меняется время от времени (я опытным путём определил, что там существуют элементы с индексами arr[6][3] и подобные)... (я это вычислял многоразовыми отправками, способом просмотра есть ли ошибка выполнения или нет). Шутники какие-то прям. Пытаться решить задачу для другого устройства если не знаешь его интерфейса это, конечно, очень весело, но не для меня.

published at 8/24/20, 12:02:01 pm

Получилось решить эту задачу, не используя другие системы счисления. Подсказка: можно завести два списка для римских чисел, которые складываются и которые отнимаются.