Требуется написать программу, которая найдет наименьшее и наибольшее числа, состоящие из тех же цифр, что и заданное натуральное число N.
Пример : ввод :7051
Вывод :1057 7510
Питон
Ответы
Ответ:
Объяснение:
смотри делишь это всё на цифры циклом
например
a = 123
a = a % 10 = 3
a = a // 10 = 12
a = a % 10 = 2
a = a // 10 = 1
a = a % 10
ты должен сохранять в массив все остатки от деление (%) и потом удалять последнюю цифру (//), и так пока 'a' не будет равно 0 (a - в данном случае вводимое число)
после сортируешь массив по неубыванию(по увелечению) и выводишь
после выводишь этот массив с конца
код на C++:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int a; // обозначение числа
cin >> a; // ввод числа
vector <int> A;
for(; a; a /= 10){ // цикл работает пока a > 0, после каждого цикла будет удаляться последняя цифра
A.push_back(a % 10) ;// сохроняем на последнее место в массиве последнюю цифру нынешнего 'a'
}
int mini = 0;
for(int i = 0 ; i < A.size(); i++){ // массив работает пока i меньше размера A
for(int j = i; j < A.size(); j++){// внутрений массив который будет искать минимальною цифру в массиве и ставить её в начало
if(mini > A[j]){
mini = j;// вычисляет номер минимальной цифры
}
}
swap(A[i], A[mini]); // меняет местами i-тый и минимальный элеммент
}
// Это всё сортирует массив
for(int i = 0; i < A.size(); i++){
cout << A[i];// выводит минимальное число
}
for(int i = A.size() - 1; i >= 0; i--){
cout << A[i];
}
return 0;
}
Пример : ввод :7051
Вывод :1057 7510
Питон