16oce1
12.06.2021 07:34

На python білі капелюхи у кімнаті знаходиться кілька людей. на кожному одягнена біла або чорна шляпа. кожна людина підраховує кількість білих капелюхів, які він бачить на головах інших. обчисліть кількість людей, що носять білі капелюхи або повідомити, що вхідні дані не можуть відповідати реальній ситуації. вхідні дані кожен рядок представляє собою один тест. у кожному рядку задана послідовність чисел a1, a2, , де ai містить кількість білих капелюхів, підрахованих i - ю людиною. вихідні дані для кожного тесту в окремому рядку вивести кількість людей, що носять білі капелюхи або -1, якщо вхідні дані не відпові реальній ситуації.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ekaterinka21041
26.12.2020 02:21
Var dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 :real;

procedure nod( var dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 :real; );
var a:array[1..6] of real;
i : integer;
begin
dv1:=100;
tr1:=100;
pt1:=100;
for i:= low(a) to high (a) do begin
readln(a[i]);
repeat
if( (a[i] mod 2) =0) then begin
a[i]:=a[i]/2;
dv:=dv+1;
end
else if( ( a[i] mod 3)=0) then begin
a[i]:=a[i]/3;
tr:=tr+1;
end
else if ( ( a[i] mod 5)=0) then begin
a[i]:=a[i]/5;
pt:=pt+1;
end;

untill(a=1);
if dvif trif ptdv:=0;
tr:=0;
pt:=0;
end;
if dv1>0 then dv2:=dv1*2 else dv2:=1;
if tr1>0 then tr2:=tr1*3 else tr2:=1;
if pt1>0 then pt2:=pt1*5 else pt2:=1;
nod:=dv2*tr2*pt2;
writeln(nod);
end;
begin
nod( dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 );
end.

end;
0,0(0 оценок)
Ответ:
Galel227
20.06.2022 20:30
Задача №1
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
Var n, i: integer; 
Begin                   
writeln ('Введите число');
readln(n);                                    
writeln('Делители числа:');  
for i := 1 to n div 2 do     
  if (n mod i) = 0 then begin 
    write(i,'  ');
  end;         
End.       

Задача №2 (алгоритм не очень шустрый, но работает и понятный)
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
var
  a, b, x, y, nod: integer;

begin
  writeln('Введите a,b');
  readln(a, b);
  x := a;y := b;
  while x <> y do
    if x > y
      then x := x - y
    else y := y - x;
  nod := x;
  writeln('NOD(', a, ',', b, ')=', nod);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота