Как работает рекурсия? - C#
Формулировка задачи:
Помогите разобраться, не понимаю до конца как работает рекурсия в связке с субстринг...
Вопрос: Почему при условии if (str.Length > 1) не выводит последнею букву???
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Substring { class Rek { public void DisplayReverse(string str) { if (str.Length > 0) ///При длине строки в 1-цу, 2-ой аргумент сабстринг будет равен 0 DisplayReverse(str.Substring(1, str.Length - 1)); else return; Console.Write(str[0]);///Как я думал (неправильно), первый вывод в рекурсии должен произойти при длине строки в /// в один символ. Почему при условии if (str.Length > 1) не выводит последнею букву??? } } class Program { static void Main(string[] args) { string str = "This is a"; Console.WriteLine(str.Substring(1, str.Length - 1)); Console.WriteLine(str[0]); Console.WriteLine(str.Substring(1, str.Length - 9)); Console.WriteLine("Lengh is "+ (str.Length-9)); Console.WriteLine(str[0]); char c = str[0]; Console.WriteLine("Char c="+c); string f = "F"; ////Console.WriteLine("String F is Substringed from 1 to 0(1-1) "+f.Substring(1, str.Length - 1)); не работает по //////понятным причинам Rek d = new Rek(); Console.WriteLine("\n String is\n" + str + "\nReversed string is "); d.DisplayReverse(str); Console.ReadKey(); } } }
Решение задачи: «Как работает рекурсия?»
textual
Листинг программы
Console.Write(str[0]);//не моё
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д