Помогите подправить функцию hex, чтобы в конце хоть последний остаток снова не отображался

241
18 июля 2017, 20:01
    #include <iostream>
int hex(int n){
  int temp;
  while(n != 0){
    temp = n%16;
    if(temp >= 0 && temp <= 9)
      std::cout << temp << " ";
    else if(temp >= 10 && temp <= 15)
      std::cout << 'A' + temp - 10 << " ";
    n /= 16;
    }return temp;
}
int main()
{
   hex(933);
}
Answer 1
Как вариант:
#include <iostream>
    #include <vector> 
    void hex(int n) {
        std::vector <int> v;
        while (n != 0) {
            v.push_back(n % 16);
            n /= 16;
        }
        for (int i = v.size() - 1; i >= 0; --i)
        {
            if (v[i] > 9)
                std::cout << (char)((int)'A' - (10 - v[i]));
            else
                std::cout << v[i];
        }
    }
    int main()
    {
        hex(933);
        return 0;
    }
Answer 2

Я бы сделал попроще:

string hex(unsigned int n)
{
    string res;
    while(n){
        res = "0123456789abcdef"[n%16] + res;
        n /= 16;
    }
    return res;
}
int main()
{
    cout << hex(933) << endl;
    cout << hex(15) << endl;
    cout << hex(84) << endl;
}

Вот вариант покороче, с рекурсией:

void hex(unsigned int n)
{
    if (n == 0) return;
    hex(n/16);
    cout << "0123456789abcdef"[n%16];
}
int main()
{
    hex(933); cout << endl;
    hex(15); cout  << endl;
    hex(84); cout  << endl;
}

Ну и, понятно, самое простое :)

int main()
{
    cout << hex << 933 << endl;
    cout << hex << 15 << endl;
    cout << hex << 84 << endl;
}
READ ALSO
Компиляция C/C++ вместе с Python

Компиляция C/C++ вместе с Python

Программа написана на С, часть кода на python

276
Обновление содержимого объекта

Обновление содержимого объекта

Пользователь оценивает фотографиюAjax Иконка Like изначально серого цвета, после выполнения успешного Ajax-запроса должна стать розового цвета...

269
jQuery().each(). Выбор одного элемента, с разными ID/

jQuery().each(). Выбор одного элемента, с разными ID/

Доброе время суток! Есть форма, с 1 checkbox, 1 label , 1 input[text] в таком порядке, и всех по 3(инпут текст скрыт, и выпадает в зависимости, от того выбран...

286
Фиксация слова при скроле страницы

Фиксация слова при скроле страницы

Подскажите пожалуйста как можно и с помощью чего фиксировать при скроле слово в блоке, относительно списка елементов, и задавать елементу...

245