Вопрос по информатике:
Дано натуральное число
n
. Необходимо переставить его цифры таким образом, чтобы получилось минимальное возможное число без ведущих нулей.
СДЕЛАТЬ В С++ с использованием примитивного языка
- 01.06.2018 03:35
- Информатика
- remove_red_eye 5621
- thumb_up 45
Ответы и объяснения 1
#include 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");}
- 03.06.2018 00:34
- thumb_up 23
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.