Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 20 из 35

Тема: Вопрос по программированию :)

  1. #1
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    Итак, а теперь вопросы на сообразительность для программистов ). Начнем с самого простого. Как поменять местами 2 переменные не используя третью? И так, чтобы это работало без глюков.

  2. #2
    Активный участник Аватар для 451F
    Регистрация
    17.05.2010
    Адрес
    Ukraine
    Сообщений
    784
    a+=b;<br />b-=a;<br />a-=b;
    Close the world, open the nExt

  3. #3
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    Неа. А если в a и b будет записано 32000?

  4. #4
    Активный участник Аватар для 451F
    Регистрация
    17.05.2010
    Адрес
    Ukraine
    Сообщений
    784
    тогда так )<br />в ax a, bx b<br />push ax<br />push bx<br />pop ax<br />pop bx
    Close the world, open the nExt

  5. #5
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    Не хитри ) Можно сделать, не используя ничего , кроме этих двух переменных.

  6. #6
    Активный участник
    Регистрация
    17.05.2010
    Адрес
    Russia
    Сообщений
    354
    a = a + b<br />b = a - b<br />a = a -b

  7. #7
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    <!--QuoteBegin zer0access --><div class="title_quote">Цитата: zer0access</div><div class="quote"><!--QuoteEBegin-->a = a + b<br />b = a - b<br />a = a -b<!--QuoteEnd--></div><!--QuoteEEnd--><br /><br />когда a и b по 32000 у тебя возникает переполнение и после первого шага в a будет записан бред. )

  8. #8
    Новобранец
    Регистрация
    17.05.2010
    Сообщений
    52
    a ^= b ^= a ^= b;

  9. #9
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    <!--QuoteBegin wrong --><div class="title_quote">Цитата: wrong</div><div class="quote"><!--QuoteEBegin-->a ^= b ^= a ^= b;<!--QuoteEnd--></div><!--QuoteEEnd--><br /><br />Правильно

  10. #10
    Новобранец
    Регистрация
    17.05.2010
    Сообщений
    52
    но ну нафиг, увидел бьі такое в коде, убил бьі <img style="border: none;" alt="smile" align="absmiddle" src="engine/data/emoticons/smile.gif" />

  11. #11
    Активный участник
    Регистрация
    17.05.2010
    Адрес
    Russia
    Сообщений
    354
    <b>Aulust</b>,<br />Не будет переполнения У меня 32-х битный int xD

  12. #12
    Активный участник Аватар для 451F
    Регистрация
    17.05.2010
    Адрес
    Ukraine
    Сообщений
    784
    а как нащет поиска кратчайшего выхода из лабиринта без рекурсии? <img style="border: none;" alt="smile" align="absmiddle" src="engine/data/emoticons/smile.gif" />
    Close the world, open the nExt

  13. #13
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    Волновой алгоритм?

  14. #14
    Активный участник Аватар для 451F
    Регистрация
    17.05.2010
    Адрес
    Ukraine
    Сообщений
    784
    динамика - заливка краской
    Close the world, open the nExt

  15. #15
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    <!--QuoteBegin 451F --><div class="title_quote">Цитата: 451F</div><div class="quote"><!--QuoteEBegin-->заливка краской<!--QuoteEnd--></div><!--QuoteEEnd-->. Не понял. Как это?<br />

  16. #16
    Новобранец
    Регистрация
    17.05.2010
    Сообщений
    52
    волновой, самьій бьістрьій, но требуєт доп. памяти, хотя рекурсия не лутше<br />

  17. #17
    Активный участник Аватар для 451F
    Регистрация
    17.05.2010
    Адрес
    Ukraine
    Сообщений
    784
    А - вход, Б - выход<br />заполнение массива числами(0 - стенка)<br />000А000<br />0321000<br />0402000<br />05<b>63</b>000<br />000Б000<br /><br />в выделенной области два потока встречаются, и тот, в котором число больше отсекается, как более длинный
    Close the world, open the nExt

  18. #18
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    Ну раз пошло про алгоритмы, давайте кто знает самый быстрый алгоритм поиска подстроки в строке. ) Можно только название )

  19. #19
    Освоившийся
    Регистрация
    17.05.2010
    Сообщений
    178
    <!--QuoteBegin 451F --><div class="title_quote">Цитата: 451F</div><div class="quote"><!--QuoteEBegin-->А - вход, Б - выход<br />заполнение массива числами(0 - стенка)<br />000А000<br />0321000<br />0402000<br />0563000<br />000Б000<br /><br />в выделенной области два потока встречаются, и тот, в котором число больше отсекается, как более длинный<!--QuoteEnd--></div><!--QuoteEEnd--><br /><br />Это и есть волновой алгоритм )

  20. #20
    Активный участник Аватар для 451F
    Регистрация
    17.05.2010
    Адрес
    Ukraine
    Сообщений
    784
    двоичный врядли <img style="border: none;" alt="smile" align="absmiddle" src="engine/data/emoticons/smile.gif" />
    Close the world, open the nExt

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •