Pascalabc.net 3.2, сборка 1383 от 09.02.2017 внимание! если программа не работает, обновите версию! используем "жадный" алгоритм. он не всегда дает минимальное общее количество купюр, но зато простой в понимании. begin var k: =arr(500,100,50,10,5,2,1); // массив с достоинствами купюр var s: =readinteger('введите сумму: '); // сумма к оплате writeln('уплатить: '); var i: =0; while s> 0 do begin var p: =s div k[i]; if p> 0 then writeln(p,' шт. достоинством ',k[i],' руб.'); s: =s mod k[i]; i+=1 end; end. примеры введите сумму: 3794 уплатить: 7 шт. достоинством 500 руб. 2 шт. достоинством 100 руб. 1 шт. достоинством 50 руб. 4 шт. достоинством 10 руб. 2 шт. достоинством 2 руб. введите сумму: 507 уплатить: 1 шт. достоинством 500 руб. 1 шт. достоинством 5 руб. 1 шт. достоинством 2 руб.
Korikm
29.11.2022
Будем последовательно решать для первых i символов кода, основываясь на ответах для i - 1 и i - 2. заметим, что если i-й символ кода равен 0 или ответа для i - 1 не существует, то ответ для i получается добавлением одного символа к ответу для i - 2, если последние две цифры кода нельзя понять, как зашифрованную букву, или ответа для i - 2 не существует, то надо добавить символ к i - 1, а иначе сравнить длины ответов и добавить букву к тому, кто короче. код (python 3.5): codes = ".zyxwvutsrqponmlkjihgfedcba" with open('input.txt', 'r') as f: encoded = list(map(int,list(f. if len(encoded) == 1: print(codes[encoded[0]]) else: decoded = [codes[encoded[0]], ""] for i in range(1, len(encoded)): if (decoded[0] is none) or (encoded[i] == 0): decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]] elif (10*encoded[i-1] + encoded[i]> 26) or (decoded[1] is none) or \ (len(decoded[1]) > = len(decoded[0])): decoded = [decoded[0] + codes[encoded[i]], decoded[0]] else: decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]] with open('output.txt', 'w') as f: f.write(decoded[0])
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Чему равна сумма чисел х=43 в 8 степени, и у=56 в 16 степени? а) 121 в 8 степени б) 171 в 8 степени в) 69 в 16 степени г) 10000001 во 2 степени