Реферат: Рекурсия
void main()
{
clrscr();
printf("\nКоличество элементов массива? "); scanf("%d", &n);
printf("\nВ сформированном массиве %d чисел:\n", n);
randomize();
for (i=0; i<n; i++)
{a[i]= -10+random(21); printf("%d ", a[i]);}
printf("Сумма: %d", summa(n-1, a));
}
int summa(int N, int a[100])
{
if (N==0) return a[0]; else return a[N]+summa(N-1, a);
}
Пример 5. Определить, является ли заданная строка палиндромом, т.е. читается одинаково слева направо и справа налево.
Идея решения заключается в просмотре строки одновременно слева направо и справа налево и сравнении соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом. Граничное условие — строка является палиндромом, если она пустая или состоит из одного символа.
{программа на языке Pascal} Program Palindrom; {Рекурсивная функция} Function Pal(S: String) : Boolean; Begin If Length(S)<=1 Then Pal:=True Else Pal:= (S[1]=S[Length(S)]) and Pal(Copy(S, 2, Length(S) - 2)); End; Var S : String; {Основная программа} Begin Write('Введите строку: '); ReadLn(S); К-во Просмотров: 1239
Бесплатно скачать Реферат: Рекурсия
|