Написать рекурсивную функцию, переводящую числа из одной системы счисления в иную.
Написать рекурсивную процедуру, переводящую числа из одной системы счисления в иную. (Язык 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
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
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов