rendered paste body//Программа дял вычисления длинны строки//Автор: Романов Ермолай Евгеньевич, 171 группа ПМиИ//Версия: 0.1//Среда разработки: Microsoft Visual C++ 2010 (ОС Windows 7)//Дата последнего изменения: 15.03.2010//-----------------------------------------------------------------#include <iostream>#include <time.h>using namespace std;unsigned len_rec(char istr[]);unsigned len_itr(char *istr);bool pdrom(char poly[], int n = 0);int main(){ setlocale(LC_ALL,"Russian"); const int nelm = 100; char my_str[nelm]; const char dot = '.'; cout << "Введите строку: "; cin.getline(my_str, nelm, '\n'); cout << "Длинна строки \"" << my_str << "\" равна " << len_rec(my_str) << endl; int beg = clock(); for (int i = 0; i < 1000000; i++) len_rec(my_str); int end = clock(); unsigned rec_time = end - beg; cout << "Время выполнения рекурсивной версии счетчика эл-тов: " << rec_time << " секунд."; beg = clock(); for (int i = 0; i < 1000000; i++) len_itr(my_str); end = clock(); unsigned itr_time = end - beg; cout << "\nВремя выполнения итеративной версии счетчика эл-тов: " << itr_time << " секунд."; cout << "\nРекурсивная версия медленнее в " << rec_time/itr_time << " раз."; cout << "\nПолиндром или нет??"; if (pdrom(my_str)) cout << "\nПолиндром!"; else cout << "\nНе полиндром..."; getchar(); getchar();}unsigned len_rec(char istr[]){ if (!(*istr)) return 0; return len_rec(istr + 1) + 1;}unsigned len_itr(char *istr){ int n = 0; while (!istr[n]) n++; return n;}bool pdrom(char poly[], int n){ if (poly == poly + len_itr(poly) - n) { n++; pdrom(poly + n, n); return true; } return false;}