Functii

Sa se afiseze suma primelor n numere naturale.

Observam ca pentru n=0 suma primelor 0 elemente este 0. (suma(n)=0).

Daca n>=1 suma primelor n numere se obtine din suma primelor n-1 numere la care se adauga n, adica suma(n)=suma(n-1)+n.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class program
{
          static int suma(int n)
        {
            if (n == 0) return 0;
            else return suma(n - 1) + n;
        }
        static void Main()
        {
            Console.WriteLine("n=");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(suma(n));
            Console.ReadKey();

        }
}

Sa se afiseze produsul numerelor pare dintre 1..n, n citit de la tastatura.

Obsevam ca pentru n=0 produsul este 1 (produs(n)=1).

Daca n este numar par atunci produsul este cel gasit pana la pasul n-1 la care se inmulteste noul numar (produs(n)=produs(n-1)*n).

Daca n este numar impar produsul celor n numare este egal cu produsul primilor n-1 termeni. (produs(n)=produs(n-1)).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class program
{
          static int produs(int n)
    {
        if (n == 0) return 1;
        else if (n % 2 == 0) return produs(n - 1) * n;
        else return produs(n - 1);
           
        }
        static void Main()
        {
            Console.WriteLine("n=");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(produs(n));
            Console.ReadKey();

        }
}

 

Sa se afiseze valoarea celui de-al n-lea termen din sirul lui Fibonacci.

fibo(0)=0; fibo(1)=1; fibo(n)=fibo(n-1)+fibo(n-1) pentru n>=2;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class program
{
          static int fibo(int n)
    {
        if (n == 0) return 0;
        else if (n == 1) return 1;
        else return fibo (n-2)+fibo(n-1);
       
           
        }
        static void Main()
        {
            Console.WriteLine("n=");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(fibo(n));
            Console.ReadKey();

        }
}

Sa se afiseze cmmdc(a,b) folosind metoda scaderilor succesive. a si b se citesc de la tastatura.

daca a=b => cmmdc(a,b)=a;

daca a>b => cmmdc(a,b)=cmmdc(a-b,b);

daca b>a => cmmdc(a,b)=cmmdc(a,b-a);

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class program
{
       static int cmmdc(int a,int b)
    {
        if (a == b) return a;
        else if (a > b) return cmmdc(a - b, b);
        else return cmmdc(a, b - a);
    }
         
        static void Main()
        {
            Console.WriteLine("a=");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("b=");
            int b = int.Parse(Console.ReadLine());
            int x = cmmdc(a, b);
            Console.WriteLine(x);
            Console.ReadKey();

        }
}

Se citesc de la tastatura caractere pana la introducerea caracterului '*'. Sa se scrie caractere in ordinea inversa a citirii (*- fce parte din sir).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class program
{
    static void caractere()
    {
        char c = Console.ReadLine()[0];
        if (c != '*') caractere();
        Console.WriteLine(c);
    }
    static void Main()
    {
        caractere();
        Console.ReadKey();
    }
}

 

Sa se modifice programul astfel incat sa nu se afiseze *.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class program
{
    static void caractere()
    {
        char c = Console.ReadLine()[0];
        if (c != '*') {caractere(); Console.WriteLine(c);}
    }
    static void Main()
    {
        caractere();
        Console.ReadKey();
    }
}

counter for wordpress

View My Stats