Может быть, вы можете сказать мне, как я могу начать, по крайней мере. Я могу использовать только C-язык. Задача имеет очень специфические ограничения, и я никоим образом не могу их нарушить. Задача такова:Рекурсивный поиск функции Palindrome
- Запись рекурсивной функции, которая проверяет, является ли строка Палиндром.
- Может использовать
strlen()
только один раз в функции. - Нельзя использовать какие-либо петли или функции на основе циклов.
- Может использовать только один переход в рекурсивной функции.
- Может изменить строку, но только если она вернется в конце функции.
- Декларация функции:
int palindrom(char* str);
Я начал писать, но нет идей больше:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int palindrom(char* str) { int len = strlen(str); if (str[0] != str[len - 1]) return 0; } int main(void) { char string1[] = "ROTATOR"; char string2[] = "8536358"; char string3[] = "Palindrome"; if (palindrom(string1)) printf("%s is Palindrome\n", string1); else printf("%s is not Palindrome\n", string1); if (palindrom(string2)) printf("%s is Palindrome\n", string2); else printf("%s is not Palindrome\n", string2); if (palindrom(string3)) printf("%s is Palindrome\n", string3); else printf("%s is not Palindrome\n", string3); return 0; }
Ого, вы получили блок писателя быстро. – totoro
Возможный дубликат [this SO post] (http://stackoverflow.com/questions/16062723/test-for-palindrome-using-a-recursive-function-in-c). – user3078414
Googling 'C Рекурсивная функция нахождения палиндрома', т.е. ваш заголовок, добавленный с 'C', дает; «Около 92 300 результатов». –