using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AlgorytmyKolos2 { class Program { static void Main(string[] args) { /* //ZADANIE 1. //Za pomocą algorytmu rekurencyjnego i iteracyjnego oblicz: //a) sumę licz od k do n dla k < n //b) silnię n int k = 2, n = 5, wynik = 0; for (int i = k; i <= n; i++) { wynik = wynik + i; } Console.WriteLine("Wynik: {0}", wynik); Console.WriteLine("Wynik: {0}", Suma(k, n)); int silnia = 1; for(int i = 2; i <= n; i++) { silnia = silnia * i; } Console.WriteLine("Wynik: {0}", silnia); Console.WriteLine("Wynik: {0}", Silnia(n)); */ /* //ZADANIE 2. //Znajdź a8 gdzie: an=(-1)^n dla n<4; an=an-1+2(bn-3) dla n>=4; //bn=1 dla n<5; bn=bn-1+bn-2 dla n>=5 za pomocą algorytmu //iteracyjnego i rekurencyjnego double n = 8; double[] a = new double[20]; double[] b = new double[20]; for(int i = 0; i <= n; i++) { if(i<4) a[i] = Math.Pow(-1, i); else { for(int j = 0; j <= (n + 3); j++) { if (j < 5) b[j] = 1; else b[j] = b[j - 1] + b[j - 2]; } a[i] = a[i - 1] + 2 * b[i + 3]; } } Console.WriteLine("Wynik: {0}", a[8]); Console.WriteLine("Wynik: {0}", CiagA(8)); */ //ZADANIE 3. //Dla dowolnego folderu znaleźć podkatalog z największą //liczbą plików utworzonych w 2018 roku int i = 0, ile = 0; int[] ilosc = new int[1000]; string[] nazwa = new string[1000]; DirectoryInfo dir = new DirectoryInfo(@"D:\Music"); DirectoryInfo[] specDir = dir.GetDirectories(); foreach (var directory in specDir) { foreach (var fi in directory.GetFiles()) { if(fi.CreationTime.Year == 2018) ile++; } nazwa[i] = directory.ToString(); ilosc[i] = ile; ile = 0; i++; } Console.WriteLine("{0}: {1}", nazwa[ilosc.ToList().IndexOf(ilosc.Max())], ilosc.Max()); //ZADANIE 4. //Znaleźć 2 największe pliki i podać ich nazwę Console.ReadLine(); } static int Silnia(int n) { if (n == 0) return 1; else return n * Silnia(n - 1); } static int Suma(int k, int n) { if (n == k) return k; else return Suma(k, n - 1) + n; } static double CiagA(double n) { if (n < 4) return Math.Pow(-1, n); else return CiagA(n - 1) + 2 * CiagB(n + 3); } static double CiagB(double n) { if (n < 5) return 1; else return CiagB(n - 1) + CiagB(n - 2); } } }