| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Реверс цыфр в числе |
| Автор: GSasha 22.1.2009, 19:39 | ||
| Есть задание: There is number e.g. 6789 it needs to write function, which returns vise versa number – 9876. Мой вариант таковой
Возможно ли улучшить данный вариант (без использования atoi и itoa)? |
| Автор: Kallikanzarid 23.1.2009, 04:00 |
| Для десятичных чисел, ИМХО, нет. Для 16-х и 2-х - можно. |
| Автор: mes 23.1.2009, 04:17 | ||
разве что только избавиться от лишней переменной и облегчить цикл :
П.С. код не при больших значениях будет выдавать неверный результат в следствии переполнения.. |
| Автор: GSasha 23.1.2009, 08:35 |
| ок, всем спасибо. |
| Автор: mrbrooks 23.1.2009, 08:40 |
| GSasha, а ты число вводишь с клавиатуры или оно у тебя жестко забито в программе? |
| Автор: GoldFinch 23.1.2009, 09:28 |
| можно загрузить в fpu, преобразовать в bcd, поменять байты местами, загрузить в fpu, записать на место неисключено что это даже быстрее цикла |
| Автор: mrbrooks 23.1.2009, 09:47 | ||||
Добавлено @ 09:53 с потоками ввода/вывода
|
| Автор: GoldFinch 23.1.2009, 12:56 | ||
для 8 цифр
|
| Автор: mes 23.1.2009, 14:43 |
Улучшения не вижу ... код стал непереносим, да и не под каждый компилятор, к тому же и программисту в нагрузку на память... |
| Автор: Dov 23.1.2009, 15:04 | ||||
Не знаю, что ты имеешь ввиду под словом "улучшить" , но могу предложить такой вариант:
|
| Автор: jonie 23.1.2009, 15:48 |
| на скорость увеличить можно, при условиях ограниченности чисел - можно сделать таблицу предрасчитанных значений 8) много памяти, зато быстро должно быть... |
| Автор: GSasha 23.1.2009, 16:23 |
хороший вариант, имхо и красиво смотрится |
| Автор: jonie 23.1.2009, 16:39 |
| и чем это он хороший ? |
| Автор: GSasha 23.1.2009, 17:07 |
А чем не хороший? |
| Автор: GSasha 25.1.2009, 12:36 |
| Думаю вопрос решен. спасибо всем |