Урок 15.Задание №19 Задача про банкомат
Primary tabs
Пользователь вводит целое число - сумму в некоторой валюте, требуется выдать эту сумму купюрами наибольшего достоинства.
Напишите программу, которая в качестве результата скажет как именно надо разменять указанную сумму купюрами наибольшего достоинства (укажет количество для купюры каждого типа)
Например, пусть у нас набор купюр 1000, 500, 100 и 50 рублей:
Сумму 350 рублей: по задаче следует выдать как: 3 по 100 и 1 по 50
Сумму 520 рублей: таким набором разменять нельзя.
program bancomat; type intArr = array[ 1..7 ] of integer; // секция обьявления типов var sum,i, valueMoney,lenArr,countMoney,balance : integer; s,Money,count,str_res : string; lab : boolean; arrMoney : intArr; begin lab := True; // заполнение массива купюр arrMoney[1] := 50; arrMoney[2] := 100; arrMoney[3] := 200; arrMoney[4] := 500; arrMoney[5] := 1000; arrMoney[6] := 2000; arrMoney[7] := 5000; while(lab) do begin i := 0; lenArr := high(arrMoney); writeln('input sum: '); readln(sum); if(sum > 0) and (sum mod 100 = 0) or (sum mod 100 = arrMoney[1]) then begin while(i < high(arrMoney)) do begin valueMoney := arrMoney[lenArr]; // последний элемент массива if (sum >= valueMoney) then begin countMoney := sum div valueMoney; balance := sum mod valueMoney; Str(countMoney,count); Str(valueMoney,Money); s := count +' '+ 'by'+' '+ Money +' '+ 'rubl'+ ' '; str_res += s; s := ''; sum := balance; i += 1; lenArr -= 1; end else begin lenArr -= 1; i += 1; end; end; i := 0; lab := False; writeln(str_res); // вывод результата writeln('end'); end; end; readln(); // удерживаем консоль end.
- Log in to post comments
- 1709 reads
vedro-compota
Thu, 04/22/2021 - 21:02
Permalink
правки
_____________
матфак вгу и остальная классика =)