Некоторый исполнитель может выполнять над целыми числами кроме операций сложения, вычитания, умножения и деления еще две операции: с операции div вычисляется целое частное, с операции mod – остаток. Например: 5 div 2=2; 5 mod 2=1; 2 div 5=0; 2 mod 5=2
Покажем как с этих операций можно реализовать алгоритм работы кассира, выдающего покупателю сдачу (s) наименьшим количеством банкнот по 1000 (k1000), 500 (k500), 100 (k100) и 50 (k50).
k1000:= s div 1000
s:=s mod 1000
k500:= s div 500
s:=s mod 500
k100:= s div 100
s:=s mod 100
k50:= s div 50
Исполните алгоритм для s=234 и s=1299. Составьте соответствующие таблицы значений переменных.
var a:array[1..n]of integer;
i,b,k,c,f,g,h:integer;
begin
for i:=1 to n do a[i]:=Random(70)-20;
for i:=1 to n do
write(a[i],' ');
writeln;
for i:=1 to n do begin
if (a[i] mod 5 = 0) and (a[i] mod 10<>0) or (a[i]=50) then begin
b:=i;
for b:=i to (n-1) do
a[i]:=a[i+1];
end; end;
for i:=1 to n do
write(a[i],' ');
write('введите к ');
read(k);
for i:=1 to n do begin
if a[i] mod i = 0 then begin
c:=i;
for i:=n downto c+1 do begin
a[i]:=a[i-1];
a[c+1]:=k;
end;end;end;
for i:=1 to n do
write(a[i],' ');
writeln;
f:=0; g:=0;
for i:=n downto 1 do begin
if (a[i]>0) then f:=i;
end;
if a[f]=0 then write('нет положительных ');
for i:=n downto 1 do begin
if (a[i]<0) then g:=i;
end;
if (a[g]=0) then write('нет отрицательных ');
if (a[f]<>0) and (a[g]<>0) then begin
h:=a[f]; a[f]:=a[g]; a[g]:=h; end;
for i:=1 to n do
write(a[i],' ');
writeln;
end.
ответ:A№1
mass = [int(input()) for i in range(5)]
for i in mass:
if i % 3 == 0 and i % 10 == 8:
print(i, end=' ')
№2
from random import randint
mass = [randint(100, 999) for i in range(100, 1000)]
for i in range(len(mass) - 1):
for j in range(i + 1, len(mass)):
if mass[i] % 100 > mass[j] % 100:
mass[i], mass[j] = mass[j], mass[i]
print(mass)
№3
from random import randint
mass = [randint(0, 1000) for i in range(1000)]
for i in range(len(mass) - 1):
if mass[i] == mass[-1]:
print(i, end=' ')
B№1
mass = [int(input()) for i in range(5)]
k = 0
for i in mass:
if str(i)[0] == '8':
k += 1
print(k)
№2
from random import randint
mass = [randint(100, 999) for i in range(100, 1000)]
for i in range(len(mass) - 1):
for j in range(i + 1, len(mass)):
if sum(map(int, str(mass[j]))) < sum(map(int, str(mass[i]))):
mass[i], mass[j] = mass[j], mass[i]
print(mass)
№3
from random import randint
mass = [randint(0, 1000) for i in range(1000)]
print(mass)
k = mx = 0
for i in range(1, len(mass)):
if mass[i] * mass[k] > mx:
mx = mass[i] * mass[k]
max_i, max_k = i, k
k += 1
print(max_k, max_i)
Объяснение:
не знаю сколько чисел должно быть в массиве в интервале от 0, 1000
если надо изменить, то поменять в range(1000) на нужное кол-во чисел