Перевод из 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.
Объяснение кода листинга программы
- Объявлены три переменные: n, n1, r типа longint.
- Переменная n инициализируется значением, введенным пользователем.
- Переменная n1 инициализируется нулем.
- Переменная r инициализируется единицей.
- Запускается цикл while, который выполняется до тех пор, пока n больше нуля.
- Внутри цикла происходит вычисление значения n1: к текущему значению n1 прибавляется (n mod 8) умноженное на r.
- Значение r умножается на 10.
- Значение n делится на 8.
- После выхода из цикла while, значение n1 выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д