Написать рекурсивную функцию, переводящую числа из одной системы счисления в иную.

Написать рекурсивную процедуру, переводящую числа из одной системы счисления в иную. (Язык C++)

Задать свой вопрос
Андрей Кряж
Оной процедурой не обойтись. Скажем, переводите число из шестиричной системы исчисления в девятиричную. Сначало переводите из шестиричной в десятичную, потом из десятичной в девятиричную. В одной рекурсивной процедуре перевести не получится.
1 ответ
include lt;iostreamgt;
include lt;iomanipgt;
using namespace std;

// перевод из основания frm в основание 10
void snd(int frm,int* n,char s[])
   int m,p;
   m=strlen(s); 
   if (mgt;0)
      if (s[m-1]lt;58) p=s[m-1]-48;      
      else  p=s[m-1]-'a'+10;   
      s[m-1]=0; snd(frm,n,s);
    
   else p=0;
   *n=*n*frm+p;


// перевод числа n из основания 10 в to
void dsn(int* n,int to,char s[])
   static int k=0;
   int m;
   m=*n%to; *n/=to;  k++;
   if (*ngt;0) dsn(n,to,s);
   else s[k]=0; k=0;
   if (mlt;10) s[k]=m+48;
   else s[k]=m+'a'-10;
   k++;
 

int main()
  
  int osns,osnd;
  int n=0;
  char s[30];
  coutlt;lt;"from osn: "; cingt;gt;osns;
  coutlt;lt;"number: "; cingt;gt;s; 
  coutlt;lt;"to osn: ";  cingt;gt;osnd;
  snd(osns,amp;n,s);
  dsn(amp;n,osnd,s);
  coutlt;lt;slt;lt;endl;
  system("pause");
  return 0;


from osn: 5
number: 13211
to osn: 16
420

from osn: 16
number: 2f3de
no osn: 6
4051502






, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

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

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт