Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Какой цыкл нужен для етой задачи.Подскажыте


Автор: Гость_SLavan 2.11.2005, 16:15
На "Играх гигантов" проводился интеллектуальный конкурс "Суперчисло", в котором необходимо было в десятичной записи натурального числа N поменять местами только две цифры, чтобы полученное число стало по возможности большим.

Помогите украинской команде "Maski.ua" выиграть этот конкурс.



Входные данные: В текстовом файле supernum.dat находится лишь одно число N. (0<N<1060000)

Исходные данные: В текстовый файл supernum.sol вывести одно число, полученное при перестановке цифр числа N.

Автор: ShadeSt 2.11.2005, 16:42
Что то я не пойму если запись десятичная, то по идее же представляешь ее в виде строки, находишь наибольшую цифру, и меняешь ее с первой цифрой.... или я не правильно понял что то..

Автор: sergejzr 2.11.2005, 16:51
Грубо- отсортировать цифры по убыванию.
1)На входе - число А.
2)Остсортированноe число S;


3)Цикл по цифрам числа A и одновременно S, пока A[i] = S[i].

4)А[i+1] заменяем на S[i+1], a на место цифры S[i+1] в А ставим старую A[i+1]

Пример:

1) A=8763517
2) S=8776531

3) В цикле до 87 всё ок, затем 6<>7
4) меняем местами в А 6 и 7

Результат: 8773516

PS:
Жи, ши пиши с буквой и
Ци - аналогично. Исключения: Цыган подошёл на цыпочках к цыплёнку и цыкнул: "Цыц!"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)