Вопрос по информатике:
Написать рекурсивную процедуру, переводящую числа из одной системы счисления в другую. (Язык C++)
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 14.08.2017 06:47
- Информатика
- remove_red_eye 3571
- thumb_up 7
Ответы и объяснения 1
#include
using namespace std;
// перевод из основания frm в основание 10
void snd(int frm,int* n,char s[]) {
int m,p;
m=strlen(s);
if (m>0) {
if (s[m-1]<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 (*n>0) dsn(n,to,s);
else { s[k]=0; k=0; }
if (m<10) s[k]=m+48;
else s[k]=m+'a'-10;
k++;
}
int main() {
int osns,osnd;
int n=0;
char s[30];
cout<>osns;
cout<>s;
cout<>osnd;
snd(osns,&n,s);
dsn(&n,osnd,s);
cout<
return 0;
}
from osn: 5
number: 13211
to osn: 16
420
from osn: 16
number: 2f3de
no osn: 6
4051502
- 15.08.2017 11:51
- thumb_up 19
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.