1. Здесь у нас логическая операция конъюнкция или логическое умножение. Первая скобка ложна, ибо 3 не больше 5, ровно так же 2 не больше 4. В этом задании будем принимать значение ложь как 0, а истину - как 1. Получается, что если мы 0 умножим на 0, то получим 0.
2. Идём дальше по тому же методу. Первая скобка будет равна единице (истина), вторая - тоже. 1 * 1 = 1
3. В следующих двух примерах у нас логическая операция дизъюнкция или логическое сложение. Первая скобка равна 1 (истина), вторая - равна 0 (ложь). 1 + 0 = 1.
4. Ровно так же поступаем. Первая скобка - 1 (истина), вторая - 1. 1 + 1 = 1 (в алгебре логике 1 + 1 даёт значение 1 (истина))
for i := 1 to n do begin num := i; c := 0; for j := 1 to symbols_count do if num >= symbols[j] then begin c := c + num div symbols[j]; num := num mod symbols[j]; end;
if c = m then begin {writeln(i);} res := res + 1; end; end;
1. 0
2. 1
3. 1
4. 1
Объяснение:
1. Здесь у нас логическая операция конъюнкция или логическое умножение. Первая скобка ложна, ибо 3 не больше 5, ровно так же 2 не больше 4. В этом задании будем принимать значение ложь как 0, а истину - как 1. Получается, что если мы 0 умножим на 0, то получим 0.
2. Идём дальше по тому же методу. Первая скобка будет равна единице (истина), вторая - тоже. 1 * 1 = 1
3. В следующих двух примерах у нас логическая операция дизъюнкция или логическое сложение. Первая скобка равна 1 (истина), вторая - равна 0 (ложь). 1 + 0 = 1.
4. Ровно так же поступаем. Первая скобка - 1 (истина), вторая - 1. 1 + 1 = 1 (в алгебре логике 1 + 1 даёт значение 1 (истина))
Для N = 3500 и М = 5 будет выбрано 216 чисел
const
symbols_count = 7;
symbols: array[1..symbols_count] of integer = (1000, 500, 100, 50, 10, 5, 1);
var
num, n, m, c, i, j, res: integer;
begin
readln(n, m);
for i := 1 to n do
begin
num := i;
c := 0;
for j := 1 to symbols_count do
if num >= symbols[j] then
begin
c := c + num div symbols[j];
num := num mod symbols[j];
end;
if c = m then begin
{writeln(i);}
res := res + 1;
end;
end;
writeln(res);
end.