В двоичном представлении инвертировать все одиночные единицы, кроме старшего бита - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

В двоичном представлении инвертировать все одиночные единицы, кроме старшего бита.

Решение задачи: «В двоичном представлении инвертировать все одиночные единицы, кроме старшего бита»

textual
Листинг программы
Program P25;
 
Var C       : Array [1..31] of integer;
Var i,n,k,p : integer;
 
Begin
 
    write('n=');
    readln(n);
    
    for i:=1 to 31 Do C[i]:=0;
    p:=31;
    
    while (n>0) Do Begin
       k:=n mod 2;
       C[p]:=k;
       p:=p-1;
       n:=n div 2;
    End;
    
    k:=1;
    
    while (C[k]=0) Do k:=k+1;
 
    for i:=1 to 31 Do write(C[i]); writeln;
 
    for i:=k+2 to 30 Do If (C[i]=1) And (C[i-1]=0) And (C[i+1]=0) then C[i]:=0;
 
    for i:=1 to 31 Do write(C[i]); writeln;
 
    k:=0;
 
    for i:=1 to 31 Do k:=k*2+C[i];
    
    writeln(k);
    
End.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы