Function pr(a, b:integer):integer; var tmp:integer;begin if b = 1 then pr := a else begin tmp := pr(a, b shr 1); inc(tmp, tmp); if b and 1 = 1 then inc(tmp, a); pr := tmp; end;<span>end; рекурсивная ф-ия, алгоритм работает гораздо быстрее лобового складывания (хоть с большими числами). Процедура пишется аналогично. (если не допрешь - скажи, сделаю)</span>
Составить программу, которая меняет местами значения переменных a и b, введенных с клавиатуры, без использования дополнительных переменных
вот прога которую я нашёл в инете и разбирал не понимаю одного как она вычисляет по формулам
begin
a:=a+b;
b:=a-b;
a:=a-b;
end;
объясните плиз если например a= 23, b=45
PascalВыделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var a,b:real;
procedure change(var a,b:real);
begin
a:=a+b;
b:=a-b;
a:=a-b;
end;
begin
writeln(' Г*,ГЎ');
readln(a,b);
writeln('a=',a);
writeln ('b=',b);
change(a,b);
writeln('a=',a);
writeln ('b=',b);
readln;
end.
Вот код:
n, m = int(input()), int(input())
n += m
s1, s2 = set(), set()
for i in range(n):
student = (input())
if student in s1:
s1.remove(student)
s2.add(student)
else:
s1.add(student)
if len(s1) <= 0:
print('NO')
else:
print(len(s1))
Вот ссылка на код с отступами:https://pastebin.com/Ud5AwrSs
А)program m;var s,i:integer;begins:= 0;i:=0;for i := 0 to 5 dos := s + 1;writeln(s,',',i);end.
Ответ: s = 6,i = 5
б)program m;var s,n,i:integer;begins:= 1;n:=1;for i := 2 to n dos := s + 1;writeln(s,',',i,',',n);end.
Ответ: s = 1, i= 2 , n = 1
// PascalABC.NET 3.0, сборка 1150 от 22.01.2016
begin
var a,b:integer;
Read(a,b);
var k:=0;
for var i:=a to b do begin
var n:=i;
var s:=0;
while n<>0 do begin
s+=n mod 10;
n:=n div 10
end;
if i mod s = 0 then
begin Write(i,' '); Inc(k) end
end;
Writeln(#13#10,k)
end.
<u><em>Тестовое решение:</em></u>
10 20
10 12 18 20
4