Форум программистов, компьютерный форум, киберфорум
Наши страницы

Рекурсивные функции (палиндром) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить радиус и центр окружности минимального радиуса, проходящей хотя бы через три различные точки заданного множества точек на плоскости http://www.cyberforum.ru/cpp-beginners/thread894194.html
Определить радиус и центр окружности минимального радиуса, проходящей хотя бы через три различные точки заданного множества точек на плоскости.
C++ Замените в тексте входного файла все группы подряд идущих пробелов на один пробел Замените в тексте входного файла все группы подряд идущих пробелов на один пробел. Результат запишите в выходной файл http://www.cyberforum.ru/cpp-beginners/thread894192.html
C++ [Сортировка слиянием] Уменьшить количество требуемой памяти для сортировки
Добрый, на момент написания, день всем. Изучаю алгоритмы данных, дошёл до сортировки слиянием (Merge Sort). Прочитал, что для сортировки как минимум требуется выделение памяти, эквивалентное...
C++ long double и double в MSVC 12 одно и тоже, нужна информация,желательно быстрей
Здравствуйте все знают что в VC long double и double одно и тоже, да и при простой проверке это легко выясняется, но нужна информация от самого майкрософта, цитата или ещё что нито, где сказано что в...
C++ Реализовала формулу. Все хорошо, вот только в результатах взялось откуда-то #INF http://www.cyberforum.ru/cpp-beginners/thread894164.html
Мне нужно вычислить дифференциал интерполяционного многочлена Лагранжа третьей степени, и подставить значения иксов/игриков и аргумента. ...
C++ Не записывает ничего в файл Добро всем утро! Надеюсь хоть у кого-то оно доброе=) Помогите пжл с программой(написать либо подправить). Задача следующая: "Создать текстовый файл и напечатать в нем не менее пяти строк (можно на... подробнее

Показать сообщение отдельно
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
07.06.2013, 10:08
Цитата Сообщение от kryl1993 Посмотреть сообщение
Необходимо составить программу, которая содержит рекурсивную функ-цию Palindrom(S) логического типа, возвращающую True, если строка S является палиндромом (то есть читается одинаково слева направо и справа налево), и False в противном случае. Оператор цикла в теле функции не использовать. Вывести значения функции Palindrom(S) для пяти данных строк.
Помогите плиз!
Уже решал подобную задачу для строки "a roza upala na laru azora". Сложность заключается в игнорировании пробелов при сравнении. Вот что получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include <iostream>
using namespace std;
 
bool palindrom(char [], int);
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char arr[27] = "a roza upala na lapu azora";
 
    cout << endl;
    if (palindrom(arr, 27) == true)
        cout << endl << endl << "Строка: " << arr << " - палиндром" << endl;
    else
        cout << endl << endl << "Строка: " << arr << " - не палиндром" << endl;
    system("pause");
    return 0;
}
 
 
bool palindrom(char a[], int size)
{
    int i = 0, j = 2;
 
    if (size - j <= 0)
        return true;
    else
    {
        if (a[i] == ' ')
            i++;
        if (a[size - j] == ' ' || a[size - j] == '\0')
            j++;
 
        cout << "a[" << i << "] = "<< a[i] << "   " << "a[" << size - j << "] = " << a[size - j] << "   " << "a[" 
                       << size - 1 << "] = " << a[size - 1] << endl;
        if (a[size - j] == a[i])
        {
            if (i == 1)
                j++;
            palindrom(&a[i + 1], size - j);
            if (size - j <= 0)
                return true;
        }
        else
            if (a[size - j] != a[i])
                return false;
            else
                return true;
    }
}
Я не пробовал, но уверен, что можно переделать под любую строку.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.