БлогNot. Перевод числа из десятичной системы счисления на C++...

Перевод числа из десятичной системы счисления на C++...

Вот, как всегда попросили помочь. На C++ решалась традиционная для обучения задача перевода чисел из десятичной системы счисления в систему с любым основанием от 2 до 9.

Решить нужно было без строк или указателей, которые ещё не "проходились". Что ж, зато "проходились" массивы.

Так что решить эту "суперзадачу", учитывая красоту и выразительность языка Си, можно буквально в 2 строки и 1 минуту (ведь само решение - содержимое цикла do ... while, остальное - интерфейс):

/*Перевод числа N из десятичной системы счисления в
 систему с основанием R от 2 до 9*/
#include <iostream.h>
#include <math.h>

void main () {
 int l=0,s[80],n,r;
 cout<<"N>0: ";
 cin>>n;
 cout<<"R in [2,9]:";
 cin>>r;
 do {
  s[l++]=n%r;
  n/=r;
 } while (n!=0);
 for (int i=l-1; i>-1; i--) cout << s[i];
 cout << endl;
}

Здесь сначала вводится положительное целое число N, затем - основание системы счисления R, в которую нужно перевести число.

С чем связано ограничение "от 2 до 9"? Просто при больших основаниях понадобятся строки, наша-то основная система десятичная и "цифр" A, B, C, ... в ней нет.

Моя реализация "в обе стороны" на Паскале есть вот тут, там же ссылки на другие реализации.

19.11.2011, 17:54 [21752 просмотра]


теги: c++ программирование числа

К этой статье пока нет комментариев, Ваш будет первым