Софтуерно Инженерство
Loading...
+ Нов въпрос
m.atanasov avatar m.atanasov 0 Точки

Loops - Homework , Problem 8

Здравейте,

Имам малко нужда от помощ , защото не мога да си намеря грешката на 8-ма задача (Catalan_Numbers) .

Когато въведа число и не ми изкарва нищо, дори и (Press any key to continue).

Ето го и кода:

 Console.Write("Enter number between 1 and 100 (n):");
            int n = int.Parse(Console.ReadLine());
            if (1 < n && n < 100)
            {
                BigInteger doubleN = 2 * n;
                BigInteger nPlus = n + 1;
                BigInteger num = 1;
                for (int i = 1; i < doubleN; i++)
                {
                    doubleN *= i;
                    if (i<nPlus)
                    {
                        nPlus *= i;

                    }
                    else
                    {
                        continue;
                    }
                    if (i<=n)
                    {
                        num *= i;

                    }
                    else
                    {
                        continue;
                    }
                }
                BigInteger result = doubleN / (nPlus * num);
                Console.WriteLine("Catalan(n) = "+ result);

            }

 

Благодаря предварително!

IBraynov avatar IBraynov 74 Точки

Пробвай само с int, а не BigInteger

0
djc_bg2015 avatar djc_bg2015 922 Точки

Здравей,

имаш няколко грешки:

1. doubleN, nPlus, num трябва да са 1 в момента на инициализацията, защото, когато влезеш в фор цикъла и започнеш да смяташ факториел, началната стойност трябва да е 1.

Пример:
n = 1
for (i = 2; i <= 5; i++)
n *= i (1 * 2)
n *= i (2 * 3)
n *= i (6 * 4)
n *= i (24 * 5)

n = 5! = 120

2. Фор цикъла трябва да го въртиш до <= , както и двете проверки, те също трявба да бъдат ако <=. Елсовете са излишни.

 

Ето как ти преработих кода:

https://gist.github.com/vdonchev/5b1eb89970f02ad16951

1
14/08/2015 10:38:16
m.atanasov avatar m.atanasov 0 Точки

Благодаря за поправката!

Вчера се взирах един час в кода и не можах да си открия грешката. :D

 

0