Solução em Pascal do Problema 3

program alternante;

type Paridade= -1..1;
var n, m, soma;

procedure Bloco (N:Integer; var P:Paridade);
var num, i, PAntes, PAtual, seg: Integer;
    alternate : Boolean;
    
begin
 readLn(num);
 P:=num mod 2;
 i:=2
 while (i<=n) and p<>-1 do
  begin
   readLn(n);
   if num mod 2 = P
    then i:=i+1
   else P:=1
  end
end;

begin  {Principal}
 readLn(n);
 m:=1; soma:=1;
 
 while soma<n do
  begin
   m:=m+1;
   soma:=soma+m
  end;
 
 if soma>n
  then writeLn('Não!');
 else begin
  readLn(num);
  PAntes:=num mod 2;
  PAtual:=PAntes;
  alternate:=true;
  seg:=2;
 
  while (seg<=m) and alternate do
   begin
    Bloco(seg, PAtual);
    if (PAtual+PAntes)<>1
     then alternate:=false;
    else begin
     seg:=seg+1;
     PAntes:=PAtual
    end
   end;

  if alternate
   then writeLn('A sequencia é M_alternante');
  else writeLn('Não!')
 end
end.


Lista de Problemas

História da Computação | Listas de Exercícios | Problemas Resolvidos | macmulti@ime.usp.br