0 / 0 / 1
Регистрация: 10.10.2016
Сообщений: 65
1

Нужно описать рекурсивную функцию

03.11.2017, 16:59. Показов 427. Ответов 1
Метки нет (Все метки)

Помогите описать, и как работает, функция gor2. Код не мой, но хочу понять как работает программа.
Конвертер систем счисления. При запуске программы, 1 раз вводим систему счисления, 2 раз в какую систему хотим перевести, 3 раз вводим саму цифру.




C++ (Qt)
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
#include "stdafx.h"
#include <iostream> 
#include <conio.h>
#include <math.h>
#include <cstdio>
using namespace std;
#define LOL "0123456789ABCDEF"
int gor(char *ch, int p)
{
    int a = 0;
    int i = 0;
    for (i = 0; ch[i]; i++) // идем по всем символам числовой строки
    {
        int n = ch[i]; // взяли очередной символ
        if (n >= '0' && n <= '9') // если это цифровой символ
            n = n - '0'; // то уменьшаем его на код нуля (получим числа от 0 до 9)
        else
            n = n - 'A' + 10; // если буквенный, то уменьшаем на код 'A' (получим числа от 10 до 15)
        a = a * p + n; // вычисляем значение полинома по схеме Горнера
    }
    return a;
}
void gor2(int a, int p, char *c)
{
    static int i = 0, n;
    if (a)
    {
        ++i;
        gor2(a / p, p, c);
        c[n - i--] = LOL[a % p];
    }
    else
        c[n = i] = '\0';
}
 
int main()
{
    int a1, a2;
    char s[1024];
    cout << "1-s'i san ";
    cin >> a1;
    cout << "2-s'i san ";
    cin >> a2;
    cout << "san ";
    cin >> s;
    gor2(gor(s, a1), a2, s);
    cout << s << endl;
    cin.get(); cin.get();
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2017, 16:59
Ответы с готовыми решениями:

Описать рекурсивную функцию
Описать рекурсивную функцию function nmemb(r: link; b:integer):integer; подсчитывающую...

Описать рекурсивную логическую функцию
Описать рекурсивную логическую функцию Simm(S,l, J), проверяющую, является ли симметричной часть...

Описать рекурсивную функцию Root(X, K, N)
Описать рекурсивную функцию Root(X, K, N) вещественного типа, находящую приближенное значение корня...

Описать рекурсивную функцию Combin1(N, K)
Описать рекурсивную функцию Combin1(N, K) целого типа, находящую C(N, K) — число сочетаний из N...

1
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
03.11.2017, 17:51 2
А она никак не работает. Например, переведем число 2 из 3-ной в 5-ную систему:

https://ideone.com/6UXv3Y

P.S.: За такой код нужно по рукам бить. )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2017, 17:51

Описать рекурсивную функцию DigitCount(S)
Описать рекурсивную функцию DigitCount(S) целого типа, которая находит количество цифр в ...

Описать рекурсивную функцию pow(x,n)
пожалуйста помогите, не могу сообразить как написать такую вот программу:Описать рекурсивную...

Описать рекурсивную функцию stepen (x, n)
Описать рекурсивную функцию stepen (x, n) от вещественного х (х ≠ 0) и целого n, которая...

Описать рекурсивную функцию для вычисления
Описать рекурсивную функцию для вычисления


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

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

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