В Вашем варианте после while необходимо писать begin, а после Writeln - end. Но само по себе решение некрасивое. Вот Вам еще два на выбор.
1. Без массива
var s,n:integer; begin Write('Введите сумму: '); Read(s); n:=s div 5000; if n>0 then begin Writeln('Банкнот "5000" всего: ',n); s:=s mod 5000 end; n:=s div 1000; if n>0 then begin Writeln('Банкнот "1000" всего: ',n); s:=s mod 1000 end; n:=s div 500; if n>0 then begin Writeln('Банкнот "500" всего: ',n); s:=s mod 500 end; n:=s div 100; if n>0 then begin Writeln('Банкнот "100" всего: ',n); s:=s mod 100 end; n:=s div 50; if n>0 then begin Writeln('Банкнот "50" всего: ',n); s:=s mod 50 end; n:=s div 10; if n>0 then begin Writeln('Банкнот "10" всего: ',n); s:=s mod 10 end; if s>0 then Writeln('Недоплачено: ',s) end.
const k:array[1..6] of integer=(5000,1000,500,100,50,10); var s,n,i:integer; begin Write('Введите сумму: '); Read(s); for i:=1 to 6 do begin n:=s div k[i]; if n>0 then begin Writeln('Банкнот "',k[i],'" всего: ',n); s:=s mod k[i] end end; if s>0 then Writeln('Недоплачено: ',s) end.
Трехзначное число, записанное с цифр a,b,c имеет величину 100a+10b+c. Если зачеркнуть (отбросить) старшую цифру, то получится число 10b+c. Умножая на 6, получаем 6(10b+c)=60b+6c. И теперь можно составить уравнение 100a+10b+c=60b+6c 100a=50b+5c 100a=5(10b+c) 20a=10b+c a=(10b+c)/20 (1) Рассмотрим соотношения между целочисленными a,b,c ( a ∈ [1;9], b,c ∈ [0;9] ), которые удовлетворяют уравнению (1). Поскольку 10b кратно 10, то сумма 10b+с может оканчиваться нулем только если с=0. Тогда (1) принимает вид a=10b/20 или a=b/2 Тогда b - четное, т.е. принимает значения 2, 4, 6, 8. Соответственно, a принимает значения 1, 2, 3, 4.
Теперь можно записать варианты чисел: 120, 240, 360, 480.
а где схема