Вот эта таблица написанная в блокноте на html языке.
Что бы её посмотреть просто переименуй с "таблица.txt" на "таблица.html" и открой её в браузере.
1111110010<span>- количество нулей - 3</span>
Вы ввели число: 17318 в восьмеричной системе счисления и хотите перевести его в двоичную.
Для этого переведем его сначала в десятичную вот так :
17318 = 1∙83+7∙82+3∙81+1∙80 = 512+448+24+1 = 98510
Получилось: 98510
Переведем 98510 в двоичную систему вот так:
Целая часть числа находится делением на основание новой
9852-98449221-49224620-24612320-1226121-603021-301520-14721-6321-211
Получилось:98510 = 11110110012
Результат перевода:
17318 = 11110110012
#include <iostream>using namespace std;
//Функция возвращает минимальное возможное число,//Состоящее из цифр числа aint min(int a) { //Массив для подсчета цифр в числе int *k = new int[10]; for (int i = 0; i < 10; i++) k[i] = 0;
//Считаем, сколько раз повторяется каждая цифра в числе for (; a; a /= 10) { int t = a \% 10; //Если цифра не 0 if (t) k[t]++; }
//Переменная для результата int rez = 0; //Множиель разряда int multiplier = 10;
//Идем по массиву в обратном порядке for (int i = 9; i > 0; i--) //Если данная цифра есть в массиве (числе) for (; k[i]; k[i]--) { //Дописываем цифру в результат rez += i * multiplier * 0.1; //Увеличиваем множитель, для перехода к следующему разряду multiplier *= 10; } //Удаление массива delete[] k; return rez;}
void main(){ //Входные данные int n; printf("\n << n = "); scanf("\%d",&n);
//Вывод результата printf("\n >> min = \%d", min(n));
system("pause>>void");}