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

Представление числа N в описанной системе счисления

25.03.2022, 12:14. Показов 706. Ответов 4
Метки нет (Все метки)

Задача 2:

Как известно, в двоичной системе счисления используются только две цифры − 0 и 1. Например, число 18 в двоичной системе запишется как 10010.

Однажды Вася задумался: а что, если вместо цифры 0 использовать цифру 2? Например, число 18 тогда запишется как 1122. Действительно, 1∙23 + 1∙22 + 2∙21 + 2∙20 = 18.

Однако, у Васи возникли сложности с переводом чисел в эту систему. Помогите ему в решении этой задачи.

Входные данные

Одно целое число N в диапазоне от 1 до 109.

Выходные данные

Одна строка − представление числа N в описанной системе счисления.

Пример ввода

18

Пример вывода

1122
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2022, 12:14
Ответы с готовыми решениями:

Представление числа в k-ой системе счисления
Помогите, пожалуйста, надо написать полноценную программу перевода числа в систему счисления по...

Получить представление числа в р-чной системе счисления
Не могу понять задание "Получить представление числа в р-чной системе счисления(р<10). Как...

для заданного целого десятичного числа N получить его представление в к-ичной системе счисления (к < 10)
написать и отладить поставленную задачу: для заданного целого десятичного числа N получить его...

Считая, что оно введено в восьмеричной системе счисления, найти его десятеричное представление
Задано число диапазона unsigned long. Считая, что оно введено в восьмеричной системе счисления,...

Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления
На вычислительной практике дали такое задание: С клавиатуры вводятся 2 положительных целых...

4
Продавец времени
7128 / 4004 / 924
Регистрация: 12.03.2015
Сообщений: 18,830
25.03.2022, 14:04 2
Лучший ответ Сообщение было отмечено Artem969 как решение

Решение

Цитата Сообщение от Artem969 Посмотреть сообщение
Однажды Вася задумался: а что, если вместо цифры 0 использовать цифру 2?
Вася - дебил.
Не будь, как Вася!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cstdio>
#include <iostream>
 
std::string vasya(unsigned n)
{
  std::string s = "";
  do s = (n & 1 ? '1' : '2') + s, n -= (~n & 1);
  while (n >>= 1);
  return s;
}
 
int main()
{
  for (unsigned value = 1; value != 128; value++)
    printf(" %3u ---> %s\n", value, vasya(value).c_str());
  return 0;
}
Спасибо за интересную задачку.
3
0 / 0 / 0
Регистрация: 17.11.2020
Сообщений: 17
25.03.2022, 20:21  [ТС] 3
Ответ то верный, но в задачке у меня требуется ввод значений с клавиатуры)))
Подскажите пожалуйста, как это сделать?
0
Продавец времени
7128 / 4004 / 924
Регистрация: 12.03.2015
Сообщений: 18,830
25.03.2022, 23:01 4
Цитата Сообщение от Artem969 Посмотреть сообщение
в задачке у меня требуется ввод значений с клавиатуры
Да наплевать, откуда данные берутся. Главное - функция преобразования.
Цитата Сообщение от Artem969 Посмотреть сообщение
Подскажите пожалуйста, как это сделать?
Допиши ввод данных так, как тебе надо.
1
случайный прохожий
2080 / 1349 / 461
Регистрация: 20.07.2013
Сообщений: 3,770
26.03.2022, 00:23 5
Тут используется биективная нумерация: https://ru.abcdef.wiki/wiki/Bijective_numeration.
На основе Перевод числа из одной системы счисления (СС) в другую,
получилось следующее (в билдере):
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
// функция перевода 10-тичного числа в биективную систему
// https://ru.abcdef.wiki/wiki/Bijective_numeration
// number - число, radix - основание системы счисления (ОСС)
String BijectDecToX(unsigned __int64 number, Byte radix)
{
  // строковые переменные "результат" и "алфавит"
  String result = "", alphabet = "21";
  // если ОСС начинается от 2 и равняется длине алфавита
  if (radix > 1 && radix == alphabet.Length())
  {
    do
    {
      // результат (заполняем с конца) = "символ алфавита" как символ под индексом
      // (нумерация начинается с 1), равным остатку от деления числа на ОСС
      result = String(alphabet[number % radix + 1]) + result;
 
      // если индекс (символа) = 0,
      if (!(number % radix))
        number -= radix;  // то вычитаем из числа значение ОСС (числовое значение символа)
      number /= radix;  // далее: число = целая часть от деления на ОСС
    }
    while (number > 0);  // делаем, пока число больше 0
  }
  return result;  // получаем результат
}
C++
1
2
  // пример: число = 18, ОСС = 2
  BijectDecToX(18, 2);
Замечание: можно менять ОСС (основание системы счисления) radix, не забывая про соответствующее значение "алфавита" alphabet.

Добавлено через 7 минут
Например: radix = 10, alphabet = "A123456789"
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2022, 00:23
Помогаю со студенческими работами здесь

Для заданного целого десятичного числа N получить его представление в p-ичной системе счисления
Доброго времени суток! Никак не могу понять как выполнить задание: для заданного целого десятичного...

Для заданного целого десятичного числа N получить его представление в p-ичной системе счисления
нужно написать программу до пятницы . си++ билдер Для заданного целого десятичного числа N...

Представление числа N в описанной системе счисления
Задача 2: Как известно, в двоичной системе счисления используются только две цифры − 0 и 1....

Представление числа в двоичной системе счисления
Можете объяснить как люди выражают цифры в двоичном системе счисления к примеру цифру 94 - типа...

Вывести представление числа N в системе счисления с основанием B
Напишите программу, которая переводит переданное её целое число (возможно, отрицательное) в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru