CCCPaste

Saba_Kaiba

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