Functii2

Se citesc de la tastatura n elemente. Sa se afiseze produsul elementelor.

Observam ca:

pentru n=0 produsul este 1 (1 este elementul neutru pentru inmultire. In plus, 0!=1)

pentru n>=0, produsul este produsul primilor n-1 termeni la care se inmulteste termenul al n-lea:

produs(n)=produs(n-1)*a[n].

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

 

    class Program

    {

        static int n;

        static  int[] a = new int[100];

   

        static int produs(int n)/*Calculam produsul intr-o maniera recursiva*/

        {

            if (n == 0) return 1;

            return produs(n - 1) * a[n];

        }

 

       static void Main()

        {

           //citim datele de intrare

        Console.WriteLine("dati n:");

       n=int.Parse(Console.ReadLine());

       Console.WriteLine("Dati elementele");

       for (int i = 1; i <= n; i++)

           a[i] = int.Parse(Console.ReadLine());

        //afisam rezultatul - produsul celor n termeni din vector

        Console.WriteLine(produs(n));

        Console.ReadKey();

        }

    }

Se citesc de la tastatura n numere. Sa se afiseze produsul numerelor pare.

 

Observam ca pentru n=0 produsul este 1. Pentru un numar par produsul se obtine din produsul primelor n-1 numere la care se inmulteste numarul par. Daca numarul nu e par produsul ramane cel de la pasul anterior.

Prin urmare:

produs(0)=1

produs(n)=produs(n-1)*a[n], daca a[n] este par;

produs(n)=produs(n-1), daca a[n] este impar.

 

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

 

    class Program

    {

        static int n;

        static  int[] a = new int[100];

   

        static int produs(int n)

        {

            if (n == 0) return 1;

            if (a[n] % 2 == 0) return produs(n - 1) * a[n];

            else return produs(n - 1);

        }

 

       static void Main()

        {

          

        Console.WriteLine("dati n:");

       n=int.Parse(Console.ReadLine());

       Console.WriteLine("Dati elementele");

       for (int i = 1; i <= n; i++)

           a[i] = int.Parse(Console.ReadLine());

        Console.WriteLine(produs(n));

        Console.ReadKey();

        }

    }

Sa se afiseze suma elementelor impare dintr-un vector cu n elemente.

Observam ca:

pentru n=0 suma este 0 (0 este elementul neutru pentru adunare).

pentru a[n] numar impar, cand n>0, suma se obtine din suma precedenta la care se adauga a[n].

daca a[n] este numar, par suma precedenta nu se schimba.

Prin urmare:

suma(0)=0

suma(n)=suma(n-1)+a[n] daca a[n] este impar si n>0

suma(n)=suma(n-1) daca a[n] este par si n>0.

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

 

    class Program

    {

        static int n;

        static  int[] a = new int[100];

   

        static int suma(int n)

        {

            if (n == 0) return 0;

            if (a[n] % 2 == 1) return suma(n - 1) + a[n];

            else return suma(n - 1);

        }

 

       static void Main()

        {

          

        Console.WriteLine("dati n:");

       n=int.Parse(Console.ReadLine());

       Console.WriteLine("Dati elementele");

       for (int i = 1; i <= n; i++)

           a[i] = int.Parse(Console.ReadLine());

        Console.WriteLine(suma(n));

        Console.ReadKey();

        }

    }

 

Sa se afiseze numarul de numere prime dintr-un sir de n numere intregi.

Observam ca pentru n=0 numarul de numere care satisfac conditia ceruta este 0.

Daca a[n] este numar prim, numarul de numere prime creste cu 1, adica la numarul de numere prime obtinut pana la acest pas se adauga 1.

Daca a[n] nu este prim, numarul de numere prime nu se schimba.

 

Prin urmare:

contor(0)=0

contor(n)=contor(n-1)+1, daca a[n] este prim

contor(n)=contor(n-1), daca a[n] nu e prim.

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

 

    class Program

    {

        static int n;

        static  int[] a = new int[100];

 

        static bool prim(int n)

        {

            if (n <= 1) return false;

            for (int i = 2; i <= n / 2; i++)

                if (n % i == 0) return false;

            return true;

        }

        static int contor(int n)

        {

            if (n == 0) return 0;

            else

            if (prim(a[n])) return contor(n - 1) +1;

            else return contor(n - 1);

        }

 

       static void Main()

        {

          

        Console.WriteLine("dati n:");

       n=int.Parse(Console.ReadLine());

       Console.WriteLine("Dati elementele");

       for (int i = 1; i <= n; i++)

           a[i] = int.Parse(Console.ReadLine());

        Console.WriteLine(contor(n));

        Console.ReadKey();

        }

    }

counter for wordpress

View My Stats