Skip to content

01.10.2011

9. Особенности C#

1.Определить, составляют ли три числа геометрическую прогрессию.

2.Вычислить значение C(n, m) = (n * (n – 1) * (n – 2)*…* (n – m + 1)) / m!

3.Найти НОД трех чисел.


1.Определить, составляют ли три числа геометрическую прогрессию.

        static bool GeomProg(int a, int b, int c)
        {
            if ((a == 0) || (b == 0) || (c == 0)) // в геометр. прогрессии не может быть 0
                return false;
            else        // сортируем переменные, в а получаем наименьшее, в с - наибольшее
            {
                if (a > b)
                {
                    a += b;
                    b = a - b;
                    a -= b;
                }
                if (a > c)
                {
                    a += c;
                    c = a - c;
                    a -= c;
                }
                if (b > c)
                {
                    b += c;
                    c = b - c;
                    b -= c;
                }
                if (c == b * b / a)   //проверяем по обозначению геом. прогрессии
                    return true;
                else
                    return false;

            }
        }

2.Вычислить значение C(n, m) = (n * (n – 1) * (n – 2)*…* (n – m + 1)) / m!

        static int summa(int n, int m)
        {
            int fact, c;
            c = fact = 1;
            for (int i = 1; i <= m ; i++)
            {
                fact = fact * i;
                c *= (n - i + 1);
            }
            return c / fact;
        }

Апдейт. факториал. Теперь можно вычислить выражение используя функцию факториала.
3.Найти НОД трех чисел.

       static int Nod(int a, int b){
            while (a % b != 0)
            {
                a = a % b;
                a += b; //меняем местами a и b
                b = a - b;
                a -= b;
            }
            return b;
        }

А как же найти нод 3 чисел?)  - «Nod( Nod(a,  b),  c);»

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments