Форум программистов, компьютерный форум 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 помножить на номер минимального элемента данной последовательности. подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2897 / 1433 / 394
Регистрация: 18.10.2014
Сообщений: 2,640
25.02.2016, 02:05     Написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления
Вот, например, реализация алгоритмом сверху-вниз

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
#include <string>
#include <iostream>
 
std::string convert(int n)
{
  int weight, digit_index;
 
  // Ascend: find the most significant digit index and its weight
 
  for (weight = 1, digit_index = 0; ; ++digit_index, weight *= digit_index * 2 + 1)
  {
    int max_range = (digit_index + 1) * weight + weight / 2;
    if (-max_range <= n && n <= max_range)
      break;
  }
 
  // Descend: conversion
 
  std::string r;
 
  for (; digit_index >= 0; weight /= digit_index * 2 + 1, --digit_index)
  {
    int min_range = weight - weight / 2;
    int digit = 
      n <= -min_range ? (n + min_range) / weight - 1 :
      n >= min_range ? (n - min_range) / weight + 1 :
      0;
    r += digit < 0 ? 'A' - digit - 1 : '0' + digit;
    n -= digit * weight;
  }
 
  return r;
}
 
int main()
{
  std::cout << convert(181) << std::endl;
}
 
Текущее время: 23:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru