Ниже приведен пример рекурсивной функции на C#, проверяющей, является ли данная строка палиндромом:
using System;
public class Program
{
public static bool IsPalindrome(string str)
{
if (str.Length <= 1)
{
return true;
}
else if (str[0] != str[str.Length - 1])
{
return false;
}
else
{
return IsPalindrome(str.Substring(1, str.Length - 2));
}
}
public static void Main(string[] args)
{
string input = "madam";
bool isPalindrome = IsPalindrome(input);
Console.WriteLine($"Is '{input}' a palindrome? {isPalindrome}");
}
}
В этом коде функция IsPalindromeпроверяет, является ли данная строка strпалиндромом, сравнивая первый и последний символы. Если они не совпадают, возвращается false. Если они одинаковы, он рекурсивно вызывает себя с подстрокой, исключая первый и последний символы, пока длина подстроки не станет 0 или 1. Если длина равна 0 или 1, он возвращает trueкак это означает, что все символы были сравнены и оказались одинаковыми.
Это один из способов реализации рекурсивной проверки палиндромов в C#. Существуют и другие возможные реализации, но это должно стать хорошей отправной точкой.