<< | к задаче | главная | печатать | обсудить(0 сообщений) >>
Задача: Циклический сдвиг одномерного массива или строки, 3 уникальных алгоритма
Исходник: Пример реализация алгоритма на C++ [C++, code #675, hits: 48, рейтинг: 3/7,4.55(11)] +
аноним: Богдан Козырев [добавлен: 06.07.2018] управление:
  1. /*
  2.  
  3. Рабочий пример реализации алгоритма сдвига "Переворотами" на С++
  4.  
  5. Автор кода: ученик средней школы номер 3 им Абая
  6.  
  7. Козырев Богдан, мое резюме см. http://t800.kvkozyrev.org/rezyume.html
  8.  
  9. */
  10.  
  11. #include <iostream>
  12. #include <algorithm>
  13. #include <string>
  14. using namespace std;
  15.  
  16. int main()
  17. {
  18. // объявляем переменные
  19. string line;
  20. int i;
  21.  
  22. cout << "Введите строку : ";
  23. getline(cin,line);
  24. cout << "Введите сдвиг влево: ";
  25. cin >> i;
  26.  
  27. // проверка на случай если сдвиг больше длины строки
  28.  
  29. if (i > line.length()) i = i % line.length();
  30.  
  31. // используем встроенную в C++ для реверса std::string
  32.  
  33. reverse(line.begin(), line.begin()+i);
  34. cout <<"Строка на первом шаге : " << line << endl;
  35. reverse(line.begin()+i,line.end());
  36. cout <<"Строка на втором шаге: " << line << endl;
  37. reverse(line.begin(), line.end());
  38. cout <<"Строка на последнем шаге : " << line << endl;
  39. return 0;
  40. }

+добавить реализацию
 
каталог | задачи | паттерны | исходники | стат | форумы | карта сайта | контакты | ссылки 
© 2000-2018 CodeLAB Group
  Все права защищены
Страница сгенерирована за 0.006411 секунд
Количество запросов к БД: 9, gzip: 6.2kb/22.9kb(73%)