Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Solka
4 / 3 / 0
Регистрация: 02.10.2010
Сообщений: 20
1

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

02.10.2010, 18:41. Просмотров 1187. Ответов 1
Метки нет (Все метки)

как отнять 2 двоичные числа, записанные в символьной строке с помощью рекурсии.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2010, 18:41
Ответы с готовыми решениями:

Вывести числа, записанные в строке
Дана строка символов,состоящая из произвольных десятичных цифр,разделенных пробелами.Вывести числа...

С помощью подпрограммы преобразовать двоичные числа в десятичные
С помощью подпрограммы преобразовать двоичные числа 111100101 и 1011 в десятичные по возможности...

Вывести четные числа, записанные в строке
Дана строка символов, состоящая из произвольных десятичных цифр, разделенных пробелами. Вывести...

С помощью подпрограммы преобразовать двоичные числа 111100101 и 1011 в десятичные
Помогите пожалуйста с задачкой.Дано задание: С помощью подпрограммы преобразовать двоичные числа...

С помощью рекурсии вывести все числа от 1 до введенного пользователем числа k
С помощью рекурсии вывести все числа от 1 до введенного пользователем числа k. Не понимаю, как...

1
Mr.X
Эксперт С++
3192 / 1719 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
03.10.2010, 15:33 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//////////////////////////////////////////////////////////////////////////////////////////
//  как отнять 2 двоичные числа, записанные в символьной строке с помощью рекурсии. 
//////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_num_str;
//////////////////////////////////////////////////////////////////////////////////////////
void  remove_leading_zero(T_num_str&  num_str)
{
    while(num_str.length() > 1 && num_str[0] == '0')
    {
        num_str.erase(0, 1);
    }
}
//////////////////////////////////////////////////////////////////////////////////////////
T_num_str  subtraction_rec(T_num_str  nA, T_num_str  nB)    
{
    if(nB.length() > 1)
    {
        T_num_str  last_symb_A = nA.substr(nA.size() - 1);
        T_num_str  last_symb_B = nB.substr(nB.size() - 1);
        nA.erase(nA.size() - 1);
        nB.erase(nB.size() - 1);
 
        nA = subtraction_rec(nA, nB) + last_symb_A;
        return subtraction_rec(nA, last_symb_B);
    }
    else
    {        
        if(nB == "1")
        {
            int i = nA.size() - 1;
            while(i && nA[i] == '0')
            {
                nA[i--] = '1';
            }
            if(nA[i] == '1')
            {
                nA[i] = '0';
            }
        }
        remove_leading_zero(nA);
        return  nA;
    }
}
//////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
 
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << std::endl
                  << "nA = ";
        T_num_str  nA;        
        std::cin >> nA;
 
        std::cout << "nB = ";
        T_num_str  nB;
        std::cin >> nB;
 
        remove_leading_zero(nA);
        remove_leading_zero(nB);
 
        std::cout << "nA - nB = "
                  << subtraction_rec(nA, nB)
                  << std::endl;    
    }
}
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2010, 15:33

Разложение натурального числа на простые множители с помощью рекурсии
Собственно суть задачи: разложение натурального числа на простые множители с помощью рекурсивной...

Написать программу поиска числа Фибоначчи с помощью рекурсии
написать программу числа Фибоначчи с помощью рекурсии

С помощью рекурсии вывести максимальное число последовательности и нечётные числа
Дана последовательность чисел, вводится с клавиатуры, ввод завершается введением нуля. С помощью...


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

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

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