public static NumarMare Factorial(int factorial) { NumarMare rez = new NumarMare(5000); int rs = 1, t = 0, aux; rez.numar[0] = 1; for (int i = 2; i <= factorial; i++) { for (int j = 0; j < rs; j++) { aux = rez.numar[j] * i + t; rez.numar[j] = aux % 10; t = aux / 10; } while (t != 0) { rez.numar[rs] = t % 10; rs++; t = t / 10; } } NumarMare x = new NumarMare(rs); for (int i = 0; i < x.numar.Length; i++) { x.numar[i] = rez.numar[i]; } Array.Reverse(x.numar); return(x); }
static void Main(string[] args) { int n = 100, factorial = 1000; int[] n1 = { 7, 8, 2, 4, 9, 1, 5, 3, 9, 2 }; int[] n2 = { 3, 5, 6, 2, 7, 4, 1, 8, 7, 9 }; NumarMare nr1 = new NumarMare(n1); NumarMare nr2 = new NumarMare(n2); Console.WriteLine("Primul numar este: "); for (int i = 0; i < 10; i++) { Console.Write(n1[i]); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Al doilea numar este: "); for (int i = 0; i < 10; i++) { Console.Write(n2[i]); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"Suma celor doua numere este: {nr1 + nr2}"); Console.WriteLine($"Inmultirea celor doua numere este: {nr1 * nr2}"); Console.WriteLine($"Al {n}-lea termen din sirul lui Fibonacci este: {Fibonacci(n)}"); Console.WriteLine($"Valoarea lui {factorial}! este: {Factorial(factorial)}"); }
public static NumarMare Fibonacci(int n) { NumarMare nrf1 = new NumarMare(new int[] { 0 }); NumarMare nrf2 = new NumarMare(new int[] { 1 }); NumarMare t; for (int i = 0; i < n; i++) { t = nrf1; nrf1 = nrf2; nrf2 += t; } return(nrf1); }