1. розгалужені алгоритми банкомат містить в достатній кількості купюри номіналом 10, 20, 50, 100, 200 і 500 гривень. знайти найменшу кількість купюр, якою можна видати суму в nгривень, або вивести -1, якщо вказану суму видати не можна.вхідні дані: одне число ( 10≤ n ≤1000000 ).вихідні дані: найменша кількість купюр, якою можна видати n гривень.
var
i,j,j0: integer;
a:array[1..m,1..n] of integer;
jExit,iExit:Boolean;
begin
Randomize;
for i:=1 to m do begin
writeln;
for j:=1 to n do begin
a[i,j]:=random(2);
write(a[i,j]:2)
end
end;
writeln;
j:=0; jExit:=false;
repeat
j:=j+1; i:=1; iExit:=false;
if a[i,j]=0 then begin
repeat
i:=i+1;
if a[i,j]<>0 then iExit:=true
until iExit or (i=m);
if i=m then jExit:=true
end
until jExit or (j=n);
if a[i,j]=0 then writeln('Нулевой столбец ',j)
else writeln('Нет нулевых столбцов');
end.
Тестовый пример:
0 1 1 1 1 0 1 0 1 0 0 0 0 0 1
0 0 1 0 1 0 0 0 1 1 0 0 0 0 0
1 1 0 0 0 1 0 1 1 1 1 1 0 1 1
1 1 1 0 1 0 1 0 0 1 0 1 0 1 0
Нулевой столбец 13
k = float(input())
s = float(input())
p= float(input())
i = 0
while k < s:
i += 1
k += (k / 100)*p
print(f'Через {i} месяцев! Вы получите сумму {k}')
Объяснение:
Вводим нужные числа.
И так, i = это у нас месяцы, которая по умолчанию равна 0.
while у нас заместо времени, каждая итерация while прибавляет к месяцам 1.
И так - каждый месяц мы увеличиваем наш капитал на p.
k += (k/100)*p - считаем проценты.
Насчёт += - это тоже самое, что написать k = k + (k/100) * p.
Условие цикла, цикл будет работать, пока наш капитал меньше нужной суммы.
Как только капитал становиться больше нужной суммы - while прекращает свою работу. И мы получаем через сколько месяцев наберём нужный капитал.
*f - format