Перевод из 10-ной системы счисления в восьмеричную - PascalABC.NET

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

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

Здравствуйте, у меня такая проблема, не могу написать корректный цикл для перевода системы исчисления с десятичной в восьмеричную. Проблема в том что для маленьких чисел, выводит корректный перевод, но не для больших.
до этого использовал рекурсию, но она не подходит по условию задачи.

Решение задачи: «Перевод из 10-ной системы счисления в восьмеричную»

textual
Листинг программы
var n,n1,r:longint;
begin
readln(n);n1:=0;r:=1;
while n > 0 do 
  begin
    n1:=n1+(n mod 8)*r;
    r:=r*10;
    n:= n div 8;
  end;
  write(n1)
end.

Объяснение кода листинга программы

  1. Объявлены три переменные: n, n1, r типа longint.
  2. Переменная n инициализируется значением, введенным пользователем.
  3. Переменная n1 инициализируется нулем.
  4. Переменная r инициализируется единицей.
  5. Запускается цикл while, который выполняется до тех пор, пока n больше нуля.
  6. Внутри цикла происходит вычисление значения n1: к текущему значению n1 прибавляется (n mod 8) умноженное на r.
  7. Значение r умножается на 10.
  8. Значение n делится на 8.
  9. После выхода из цикла while, значение n1 выводится на экран.

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


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

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

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