Написать рекурсивную функцию, переводящую числа из одной системы счисления в иную.
Написать рекурсивную процедуру, переводящую числа из одной системы счисления в иную. (Язык 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
Статьи
Информатика
Статьи
Последние вопросы
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных
Разные вопросы.
Облако тегов