igorich1376

Перевернуть двоичное число и удалить нули

Dec 11th, 2025 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.72 KB | None | 0 0
  1. program Program1;
  2. uses school;
  3. function F(digit: string): string;
  4. begin
  5.   var digit_список := digit.ToList;
  6.   var digit_без_нулей := new List<char>;
  7. var cnt := 0;
  8. foreach var x in digit do
  9.   begin
  10.   if (x ='0') then begin
  11.     cnt += 1;
  12.     digit_без_нулей := digit_список[cnt:];    
  13.    end
  14.     else
  15.       break;
  16.   end;
  17. if (digit_список.Count) > 0 then Result := digit_без_нулей.JoinToString;
  18. end;
  19. // основная программа
  20. begin
  21.   var digit_bin := Bin(ReadInteger);
  22.   Println(digit_bin);
  23.   var digit_revers := digit_bin[::-1]; // переворачиваю число
  24.   Println(digit_revers);
  25.   Println(F(digit_revers));
  26. end.
  27. /////////////////// второй вариант, без функции ////////////////
  28. ## uses school;
  29. var digit := '10101000';
  30. Println(digit);
  31. Println((Dec(digit,2)));
  32. var digit_revers := digit[::-1].ToList;
  33. Println(digit_revers);
  34. var digit_not_null := new List<char>;
  35. var cnt := 0;
  36. foreach var x in digit_revers do
  37.   if x = '0' then
  38.     begin
  39.       cnt += 1;
  40.       digit_not_null := digit_revers[cnt:];
  41.     end
  42.     else break;
  43. Println(digit_not_null);
  44. var rez := digit_not_null.JoinToString;
  45. Println(rez)
  46. /////////////////////////// третий вариант, еще круче, с TrimStart ////////////////////////////
  47. ## uses school;
  48. var (digit_bin,digit_revers,digit_not_null,digit_dec)
  49. := ('','','',0);
  50. for var x := 1 to 100 do
  51.   begin
  52.     digit_bin := Bin(x);
  53.     digit_revers := digit_bin[::-1];
  54.     digit_not_null := digit_revers.TrimStart('0'); //вот оно, спасение!!!
  55.     digit_dec := Dec(digit_not_null,2);
  56.     Println(digit_dec);
  57.     //нужно ещё какое-то условие
  58.   end;
  59.  
Advertisement
Add Comment
Please, Sign In to add comment