При вводе сумы вывести сколько каких купюр банкомат выдаст - PascalABC.NET
Формулировка задачи:
Помогите плиз! Не могу понять как это реализовать! Дали задание, но я не понимаю
"задание - банкомат
есть купюры номиналом 200, 100, 50, 20 по 10 штук
нужно при вводе сумы вывести сколько каких купюр банкомат выдаст
если банкомат не может выдать суму, вывести сообщение об ошибке"
Решение задачи: «При вводе сумы вывести сколько каких купюр банкомат выдаст»
textual
Листинг программы
var s,k1,k2,k3,k4:integer; begin write('Введите сумму s='); readln(s); if(s<20)or(s>10*(200+100+50+20)) then begin write('Банкомат не может выдать такую сумму'); exit; end; k1:=0; while(s>=200)and(k1<10)do begin s:=s-200; inc(k1); end; if s>=100 then begin k2:=1; s:=s-100; end; if s mod 20=0 then begin k3:=0; k4:=s div 20; s:=0; end else if s>=50 then begin k3:=1; s:=s-50; k4:=0; while s>=20 do begin s:=s-20; inc(k4); end; end; if s=0 then begin if k1>0 then writeln('200=',k1); if k2>0 then writeln('100=',k2); if k3>0 then writeln('50=',k3); if k4>0 then writeln('20=',k4); end else write('Банкомат не может выдать такую сумму'); end.
Объяснение кода листинга программы
- Введен код на языке PascalABC.Net.
- Задача: при вводе суммы, вывести, сколько каких купюр банкомат выдаст.
- Введенная сумма сохраняется в переменной s.
- Проверка: если сумма меньше 20 или больше 10*(200+100+50+20), то выводится сообщение
Банкомат не может выдать такую сумму
и программа завершается. - Переменная k1 инициализируется значением 0 и используется для подсчета количества 200-х купюр.
- Цикл while(s>=200)and(k1<10) проверяет, достаточно ли 200-х купюр для выдачи заданной суммы. Если да, то сумма уменьшается на 200, а переменная k1 увеличивается на 1. Цикл продолжается, пока не будет израсходовано 10 200-х купюр или пока сумма не станет меньше 200.
- Если сумма больше или равна 100, то используется переменная k2 для подсчета количества 100-х купюр. Сумма уменьшается на 100, а переменная k2 увеличивается на 1.
- Если сумма делится на 20 без остатка, то используется переменная k3 для подсчета количества 50-х купюр, а переменная k4 для подсчета количества 20-х купюр. Сумма уменьшается на 50, переменная k3 увеличивается на 1, а переменная k4 увеличивается на 1 за каждую 20-ю купюру до тех пор, пока сумма не станет меньше 20.
- Если сумма равна 0, то выводится количество 200-х, 100-х, 50-х и 20-х купюр, если они были использованы.
- Если сумма не равна 0, то выводится сообщение
Банкомат не может выдать такую сумму
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д