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();
}
}