Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Гамбит
14 / 14 / 1
Регистрация: 19.10.2009
Сообщений: 93
#1

Вывести на экран шестнадцатеричное представление натурального числа - C++

10.05.2011, 22:22. Просмотров 1951. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток.

Задание:
Вывести на экран шестнадцатеричное представление данного натурального числа.


Сама рекурсия не вызывает проблем. Я считаю остаток о деления на 16 и целую часть. Когда целое деление невозможно рекурсия прекращается и тут возникает вопрос, как мне вытащить значения остатков от деления из стека? ведь у меня по сути есть только последнее значение. МАссивом делать не хочется. Есть ли способ вытащить значения из стека?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2011, 22:22     Вывести на экран шестнадцатеричное представление натурального числа
Посмотрите здесь:

Вывести шестнадцатеричное представление байта C++
C++ Для заданного натурального числа N вычислить и вывести на экран
Среди простых чисел , не превосходящих заданного натурального числа N .Найти такие, в десятичном представление которых больше всего нулей C++
Вывести все числа от 1 до заданного натурального числа n (рекурсия) C++
Используя битовые операции, вывести на экран восьмиричное представление беззнакового короткогоцелого C++
Unsigned long (Найти шестнадцатеричное представление числа) C++
C++ Необходимо вывести двоичное представление числа на экран.
C++ Циклические алгоритмы: вывести на экран все простые делители заданного натурального числа
Вывести на экран письменное название на русском языке заданного натурального числа C++
Вывести степень натурального числа C++
Как вывести на экран последнюю цифру натурального числа в среде Dev C++? C++
C++ Для заданного натурального числа N вывести в столбик все совершенные числа меньшие N c++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
10.05.2011, 22:59     Вывести на экран шестнадцатеричное представление натурального числа #2
Можно без рекурсии стандартными способами:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
{
    int number;
    std::cout << "Enter a number [> ";
    std::cin >> number;
    std::cout << std::hex << number << std::endl;
    system("Pause");
    return 0;
}
Гамбит
14 / 14 / 1
Регистрация: 19.10.2009
Сообщений: 93
10.05.2011, 23:01  [ТС]     Вывести на экран шестнадцатеричное представление натурального числа #3
я конечно благодарен, но если тема называется рекурсия, то логично было бы предположить, что мне нужна именно рекурсия.
ruslan_abel
33 / 33 / 4
Регистрация: 06.05.2011
Сообщений: 91
10.05.2011, 23:55     Вывести на экран шестнадцатеричное представление натурального числа #4
Мой вариант рекурсивной фукции:
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
#include <iostream>
#include <string>
 
using namespace std;
 
string* ToHex(int n)
{
    if (n < 16)
    {
        string nums = "0123456789ABCDEF";
        string* str = new string();
        *str += nums.at(n);
        return str;
    }
    else
    {
        int t = n % 16;
        n = n / 16;
        string* str1 = ToHex(n);
        string* str2 = ToHex(t);
        str1->append(*str2);
        delete str2;
 
        return str1;
    }
}
 
int main()
{
    int N;
 
    cin >> N;
 
    cout << *ToHex(N);
 
    return 0;
}
Kastaneda
Форумчанин
Эксперт С++
4469 / 2831 / 224
Регистрация: 12.12.2009
Сообщений: 7,201
Записей в блоге: 1
Завершенные тесты: 1
11.05.2011, 15:21     Вывести на экран шестнадцатеричное представление натурального числа #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
void dec_to_hex(int);
 
int main()
{
    int n;
    std::cout<<"Enter n: ";
    std::cin>>n;
    dec_to_hex(n);
    return 0;
}
void dec_to_hex(int n)
{
    int a=n%16;
    if(n/16) dec_to_hex(n/16);
    std::cout<<std::hex<<a;
}
без манипулятора std::hex
C++
1
2
3
4
5
6
void dec_to_hex(int n)
{
    int a=n%16;
    if(n/16) dec_to_hex(n/16);
    std::cout<< (a<10 ? char(a+'0') : char('A'-10+a));
}}
Добавлено через 8 минут
Цитата Сообщение от Гамбит Посмотреть сообщение
как мне вытащить значения остатков от деления из стека? ведь у меня по сути есть только последнее значение. Есть ли способ вытащить значения из стека?
Почитай, там правда написано наспех (стиль изложения немного сумбурный), но суть должна быть понятна.
Yandex
Объявления
11.05.2011, 15:21     Вывести на экран шестнадцатеричное представление натурального числа
Ответ Создать тему
Опции темы

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