56 / 53 / 28
Регистрация: 20.05.2015
Сообщений: 256
1

Рекурсивный перевод числа в десятичную систему счисления

25.12.2015, 17:39. Показов 2426. Ответов 3
Метки нет (Все метки)

Добрый вечер, нужна небольшая помощь в решении задачи. Смысл в том, что мы имеем два числа, записанных в троичной системе счисления. Их значения: (0 ≤ N, M ≤ 2^31 -1). Нужно перевести их в десятичную систему и определить их сумму. Условие: задача должна быть решена рекурсивно. Так как размер чисел большой, приходится использовать строки, написал программу, но она вместо ответа возвращает огромное число, в чём проблема?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
 
int getInt(char ch)
{
    return ch - '0';
}
 
long long toTen(string str, int n, long long X)
{
    if(n == str.size())
        return X;
        X = X * 3 + getInt(str[n]);
        toTen(str, n + 1, X);
}
 
int main()
{
    string str1, str2;
    cin >> str1 >> str2;
    cout << toTen(str1, 0, 0) + toTen(str2, 0, 0) << endl;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2015, 17:39
Ответы с готовыми решениями:

Перевод числа из двоичной в десятичную систему счисления на С++
Доброго всем дня! Мне необходимо перевести число из двоичной в десятичную с.с. с помощью рекурсии...

Перевод числа из восьмиричной в десятичную систему счисления
Здравствуйте! Вопрос такой. Мне нужно ввести с клавиатуры число и перевести его как бы (на самом...

Перевод числа в p-ичной системе счисления в десятичную систему
Задание: Дана символьная строка, представляющая собой запись натурального числа в p-ичной системе...

Перевод десятичного числа в двоично-десятичную систему счисления
Разработать программу и подпрограмму (подпрограммы), выполняющие действия согласно варианту задания...

3
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
25.12.2015, 19:10 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
using namespace std;
 
int getInt(char ch)
{
    return ch - '0';
}
 
long long toTen(string str, int n, long long X)
{
    if(n == str.size())
        return X;
        X = X * 3 + getInt(str[n]);
      return   toTen(str, n + 1, X);
}
 
int main()
{
    string str1, str2;
    cin >> str1 >> str2;
    cout << toTen(str1, 0, 0) + toTen(str2, 0, 0) << endl;
    system("pause");
    return 0;
}
0
56 / 53 / 28
Регистрация: 20.05.2015
Сообщений: 256
25.12.2015, 23:11  [ТС] 3
Dastan4ik, Спасибо, но можете пояснить? Зачем нужен второй return?
0
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
26.12.2015, 13:22 4
Для того чтоб вернуть значение Х.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2015, 13:22

Рекурсивный перевод из двоичной системы счисления в десятичную
Вот мой код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std;...

Перевод из двоичной в десятичную систему счисления
Добрый день! На просторах форума нашел код по переводу числа из десятичной сс в двоичную. Я еще...

Перевод чисел из двоичной в десятичную систему счисления
Задача в курсаче... =( Помогите пожалуйста

Перевод чисел из двоичной в десятичную систему счисления
Пишу в вектор значения из файла input2.txt 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 main.cpp ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.