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

Написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение? http://www.cyberforum.ru/cpp-beginners/thread1669848.html
что то не пойму, как происходит переполнение знаковых целых чисел вот #include <iostream> int main(int argc, char* argv) { int aaa , bbb ; aaa = 1 ;
C++ Правильное применение перечисления enum Дело в том, что не пойму как работать с перечислением. Мне нужно, чтобы программа принимала данные о 3 сотрудниках ( дата найма на работу, номер и размер пособия, его должность). Должности 3 - лаборант, секретарь и менеджер. Затем, чтобы она выводила о каждом сотруднике всю полученную информацию. С enum запутался, не могу понять как правильно записать в моем случае... #include <iostream> using... http://www.cyberforum.ru/cpp-beginners/thread1669836.html
C++ Программа для построения графов. Как запустить созданный файл в graphviz?
Необходимо создать программу, которая будет обрабатывать матрицу смежности графа и записывать файл для graphviz. Проблема состоит в том что я не знаю как запустить(через код моей программы) созданный файл в graphviz. После создания файла программа должна запустить Graphviz и открыть в нем этот файл. // Graph.cpp #include "stdafx.h" #include <fstream> #include <iostream> #include...
Отсортировать по убыванию четные столбцы массива C++
Дан массив размерностью 5х6. Отсортировать по убыванию четные столбецы массива.
C++ Наибольший элемент строки матрицы поменять местами с элементом главной диагонали http://www.cyberforum.ru/cpp-beginners/thread1669830.html
Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.(главная диагональ - идущая с левого верхнего угла в правый нижний)
C++ Пять последних элементов последовательно помножить на номер элемента массива Пять последних элементов последовательности у1, у2, ..., у20 помножить на номер минимального элемента данной последовательности. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
24.02.2016, 23:40     Написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления
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
//программу, которая переводит число из десятичной системы счисления в позиционную
//систему счисления. Цифра в самом младшем (нулевом) разряде этой системы счисления
//может принимать значения A, 0, 1,
//где буква A соответствует -1. Цифра в первом разряде может принимать
//значения B, A, 0, 1, 2, где буква A соответствует -1, а буква B соответствует -2.
//Цифра во втором разряде может принимать
//значения C, B, A, 0, 1, 2, 3, цифра в третьем разряде может принимать
//значения D, C, B, A, 0, 1, 2, 3, 4 и т. д.
//В этой системе счисления десятичные числа от -6 до 6
//представляются как B0, B1, AA, A0, A1, A, 0, 1, 1A, 10, 11, 2A, 20.
///////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cmath>
#include <iostream>
#include <string>
///////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
///////////////////////////////////////////////////////////////////////////////
T_str   pos_A01_val( int    n )
{
    T_str   res;
 
    for( double  d{3}; ; d += 2 )
    {
        int     n_new   =   round( n / d );
        int     dig     =   n   -   n_new * d;
 
        if  (
                abs( dig )  >   9
            )
        {
            res     =   "very large number";
            return  res;
        }//if
 
        res.push_back
            (
                dig     >=  0
                    ?   '0' + dig
                    :   'A' - dig - 1
            );
 
        if  (
                !( n = n_new )
            )
        {
            break;
        }
    }//for
 
    std::reverse
        (
            res.begin   (),
            res.end     ()
        );
 
    return  res;
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        std::cout   <<  "n = ";
        int     n{};
        std::cin    >>  n;
 
        std::cout   <<  pos_A01_val(n)
                    <<  std::endl
                    <<  std::endl;
    }//for
}
 
Текущее время: 10:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru