1.1.2 Sa interschimbe valorile a doua variabile

using System;

namespace ex1
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            int b = 10;
            int t = 0;

            Console.WriteLine("\t\t\t Interschimbarea valorilor a doua variabile:");
            Console.WriteLine(" I. Prin intermediul unei variabile temporare");
            Console.WriteLine("\t Valorile initiale ale variabilelor: a = " + a +
                              "; b = " + b + ";");
            t = a;
            a = b;
            b = t;
            Console.WriteLine("\t Valorile variabilelor dupa interschimbare" + 
                              ": a = " + a + "; b = " + b + ";");
            Console.WriteLine();

            int x = 3;
            int y = 6;
            Console.WriteLine(" II. Fara a folosi variabila temporara");
            Console.WriteLine("\t Valorile initiale ale variabilelor: x = " + x +
                              "; y = " + y + ";");
            x = x + y;
            y = x - y;
            x = x - y;
            Console.WriteLine("\t Valorile variabilelor dupa interschimbare" +
                              ": x = " + x + "; y = " + y + ";");
            Console.WriteLine();

            Console.ReadKey(true);
        }
    }
}

REZULTAT

                         Interschimbarea valorilor a doua variabile:
 I. Prin intermediul unei variabile temporare
         Valorile initiale ale variabilelor: a = 5; b = 10;
         Valorile variabilelor dupa interschimbare: a = 10; b = 5;

 II. Fara a folosi variabila temporara
         Valorile initiale ale variabilelor: x = 3; y = 6;
         Valorile variabilelor dupa interschimbare: x = 6; y = 3;

 


1.1.3 Se da un numar intreg si un intreg pozitiv n. De calculat an.

using System;

namespace ex2
{
    class Program
    {
        static void Main(string[] args)
        {
            //introducem o variabila k, care se modifica de la 0 la n,

            int a = 2;
            int n = 3;
            int k = 0;
            int b = 1;
                
            Console.WriteLine("\t\t\t Ridicare la putere a^n:");
            Console.WriteLine(" Valorile initiale ale variabilelor: a = " + a +
                              "; n = " + n + ";");
            //primul algoritm
            /*  while (k != n)
                {
                     k++;
                     b = b * a;
                }*/

            //al doilea algoritm
                while (n != 0)
                {
                     n--;
                     b = b * a;
                }

            Console.WriteLine(" Valoarea a^n = " + b); 
            
            Console.ReadKey(true);
        }
    }
}

Rezultat

                         Ridicare la putere a^n:
 Valorile initiale ale variabilelor: a = 2; n = 3;
 Valoarea a^n = 8

 


1.1.4 Se se rezolve exercitiul precedentreducind  ordinul de complexitate la log n (adica sa nu depaseasca C log n pentru o constanta C)

using System;

namespace ex2
{
    class Program
    {
        static void Main(string[] args)
        {
            //introducem o variabila k, care se modifica de la 0 la n,

            int a = 2;  // numarul
            int n = 7;  // puterea
            int b = 1;  //rezultatul
            
                
            Console.WriteLine("\t\t\t Ridicare la putere a^n:");
            Console.WriteLine(" Valorile initiale ale variabilelor: a = " + a +
                              "; n = " + n + ";");
            int k = n;
            int c = a;
                while (k != 0)
                {
                    if (k % 2 == 0)
                    {
                        k = k / 2;
                        c = c * c;
                    }
                    else {
                        k = k - 1;
                        b = b * c;
                    }
                     
                }
               Console.WriteLine(" Valoarea a^n = " + b); 
            
            Console.ReadKey(true);
        }
    }
}

Rezultat
                         Ridicare la putere a^n:
 Valorile initiale ale variabilelor: a = 2; n = 7;
 Valoarea a^n = 128

 


1.1.5 Se dau numerele naturale a ,b. Sa se calculeze produsul a*b, folosind doar operatiile  +, -, =,  <>.

using System;

namespace ex3
{
    class Program
    {
        static void Main(string[] args)
        {
            //introducem o variabila k, care se modifica de la 0 la n,

            int a = 2;  // numarul
            int b = 7;  // puterea
          

            Console.WriteLine("\t\t\t Produsul a * b:");
            Console.WriteLine(" Valorile initiale ale variabilelor: a = " + a +
                              "; b = " + b + ";");
             int c = 0;
            //c = a * n
                while (b != 0)
                {
                    b--;
                    c += a;
                     
                }
               Console.WriteLine(" Valoarea a^n = " + c); 
            
            Console.ReadKey(true);
        }
    }
}

Reaultat
                         Produsul a * b:
 Valorile initiale ale variabilelor: a = 2; b = 7;
 Valoarea a^n = 14

 


1.1.6 Se dau numerele naturale a ,b. Sa se calculeze suma a + b:


using System;

namespace ex2
{
    class Program
    {
        static void Main(string[] args)
        {

            int a = 3; 
            int b = 9; 
            int summ = 0;
                        
                
            Console.WriteLine("\t\t\t Suma a + b:");
            Console.WriteLine(" Valorile initiale ale variabilelor: a = " + a +
                              "; b = " + b + ";");
            while (a != 0){
                     a--;
                  while (b != 0) {
                           b--;
                           summ ++;
                    }
            summ ++;
            }
            Console.WriteLine(" Valoarea a + b = " + summ); 
            
            Console.ReadKey(true);
        }
    }
}

Rezultat
                         Suma a + b:
 Valorile initiale ale variabilelor: a = 3; b = 9;
 Valoarea a + b = 12

 


1.1.7 Se dau numerele naturale a ,b. Sa se calculeze citul a / b si restul r la impartire cu d, fara a folosi  /, %:

using System;

namespace ex2
{
    class Program
    {
        static void Main(string[] args)
        {

            int a = 17; 
            int d = 9; 
            int rest = 0;
            int count = 0;
                        
                
            Console.WriteLine("\t\t\t Citul a / b si restul r:");
            Console.WriteLine(" Valorile initiale ale variabilelor: a = " + a +
                              "; b = " + d + ";");

               do{
                   rest = a - d;
                   a = rest;
                   ++count;
                 } while(rest > d);
                    
            Console.WriteLine(" Valoarea a / b = " + count);
            Console.WriteLine(" Restul = " + rest);
  
            Console.ReadKey(true);
        }
    }
}

Rezultat
                         Citul a / b si restul r:
 Valorile initiale ale variabilelor: a = 17; b = 9;
 Valoarea a / b = 1
 Restul = 8

 


1.1.8 Se dau numarul natural n. Sa se calculeze n!  (0! = 1, n! = n * (n-1)!)