1)
Это задание делается в Экселе/Либре. Мы создаем таблицу ABCD и вниз от 1 до 4 как на рисунке. Далее подставляем по формуле каждое число и получаем
d1 = a1 - 2 * b1-4 * c$1
d1 = 5 - 2*3-4*0
d1 = 5-6=-1
2)
var
a,c,e,b : real;
begin
randomize;
write('a = '); read(a);
write('c = '); read(c);
write('e = '); read(e);
b:=random(100);
writeln('|a+c+e| = ', abs(a+c+e):0:3);
writeln('sqr(a+b) = ', sqr(a+b):0:3);
writeln('2*a - c = ', (2*a-c):0:3);
end.
3)
1199
Переписываем программу и вводим значение 5631.
var
x,a,b,c,s,m : integer;
begin
readln(x);
a:=x div 10;
b:=a mod 10 div 10;
c:=a div 100;
s:=x mod 1000;
m:=a+b+c+s;
writeln(m);
end.
2 + 4 + 6 + ... + 2k - арифметическая прогрессия, значит мы можем найти сумму этого ряда по формуле суммы арифметической прогрессии, вынесем это в отдельную функцию :
def sumN(first, last):
return (first + last) * ((last - first + 2) // 2) / 2
Дальше будем перебирать последний элемент для ряда, просто идти в цикле долго и глупо, поэтому зная, что функция суммы ряда из положительных чисел монотонно возрастающая, то найдем подходящий последний элемент, а значит и кол-во слагаемых с бинпоиска за логарифм вместо линии :
def sumN(first, last):
return (first + last) * ((last - first + 1) // 2) / 2
N = int(input())
l = 1
r = 100000
res = -1
while l <= r :
m = (l + r) // 2
F = 2
L = 2 * m
if sumN(F,L) > N :
res = m
r = m - 1
else :
l = m + 1
print(res)
полный код :
def sumN(first, last):
return (first + last) * ((last - first + 1) // 2) / 2
N = int(input())
l = 1
r = 100000
res = -1
while l <= r :
m = (l + r) // 2
F = 2
L = 2 * m
if sumN(F,L) > N :
res = m
r = m - 1
else :
l = m + 1
print(res)