Rekurencja i zwracanie kolejnych liczb w postaci tekstu string

Rekurencja i zwracanie kolejnych liczb w postaci tekstu string
L0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Witam,
Jestem osobą początkującą w programowaniu. Zostało mi przydzielone do wykonania zadania przy użyciu funkcji string Xyz(uint n).Ma ona działać w sposób rekurencyjny i zwracać liczby od 0 do n.
np. 0 1 2 3 4 5 6 7
a po ostatniej liczbie nie ma być spacji.
To wszystko do czego zdołałam dojść, ale działo on w sposób odwrotny tzn od n do 0.
Proszę o podpowiedź co z tym dalej zrobić.
Z góry dziękuje!

Kopiuj
namespace Zadanie1
{
    class Program
    {


        static string Linia1(uint n)
        {
            if (n>0)
            {
                Console.Write(n + " ");
                return Linia1(n - 1);
            }
            else
            {
                return "0";
            }
        }
        static void Main(string[] args)
        {
            uint a = 5, b=10;
            Console.WriteLine( Linia1(a));
            Console.WriteLine(Linia1(b));
          
            Console.ReadKey();
        }
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
1

Jakbys Mogla uzyc funkcji z dwoma parametrami, to latwo:
f(n, k)
Zmienic if (k > 0)
Write(n - k...)
I powrot return f(n, k - 1)
Wolac od n, n.
Jak nie, to mozna uzyc funkcji z dwoma parametrami jako pomocniczej( funkcja glowna zwraca ja od n = n I k = n).

VA
  • Rejestracja: dni
  • Ostatnio: dni
0

Zacznij od 0 a nie od "n"

Manuel.Artificer
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 177
1

Trzeba zacząć od n

Kopiuj
static string Linia1(uint n)
        {
            if (n != 0)
            {
                return string.Format("{0} {1}", Linia1(n - 1), n);
                //return Linia1(n - 1) + " " + n; //robi to samo tylko inny zapis
            }
            else
            {
                return "0";
            }
        }
        static void Main(string[] args)
        {
            uint a = 5, b = 10;
            Console.WriteLine(Linia1(b));
            Console.WriteLine(Linia1(b).Replace(' ', '_'));//pokazuje gdzie masz spacje

            Console.ReadKey();
        }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.