Професионална програма
Loading...
+ Нов въпрос
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Примерен тест използване на BigInteger Problem.2.Tribonacci

Въпросът ми е следния:

Когато се опитвам да добавя 

using System.Numerics;

не се получава в смисъл:

The type of namespace name "Numerics" does not exist in the namepace "System" '(Are you missing an assembly refference)

Та защо искам да използвам това, защото в конкретна задача от примерния тест а именно Problem.2. Tribonacci стигнах до заключението, че трябва да  използвам BigInteger тъй като обхвата на другите променливи явно не е достатъчен за коректното изпълнение на програмата. Само, че ето тази подсказка за грешка ми се почвява и ще помоля за някакви насоки защо се получава така и евентуално съвет как да боравя с тези  BigInteger' и :) 

А иначе ето и кодчето, което сътворих , само че с употребата на Decimal:

using System;

class Tribonacci

{

    static void Main()

    {

        decimal t1 = Convert.ToDecimal(Console.ReadLine());

        decimal t2 = Convert.ToDecimal(Console.ReadLine());

        decimal t3 = Convert.ToDecimal(Console.ReadLine());

        int N = Convert.ToInt32(Console.ReadLine());

        decimal[] arrayOfTElements = new decimal[N + 1];

        arrayOfTElements[0] = t1;

        arrayOfTElements[1] = t2;

        arrayOfTElements[2] = t3;

        decimal consecutiveElement = new decimal();

        for (int i = 0; i < N - 3; i++)

        {

            consecutiveElement = arrayOfTElements[i] + arrayOfTElements[i + 1] + arrayOfTElements[i + 2];

            arrayOfTElements[i + 3] = consecutiveElement;

        }

        Console.WriteLine(consecutiveElement);

 

    }

}

 

 

Тагове:
0
Programming Basics
HPetrov avatar HPetrov 822 Точки

Ето тук съм дал отговор на това.

2
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Явно съм пропуснал да я видя тази тема :) 1 + от мен :)

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Тъй като съм отворил тема вече с тази задача ще добавя крайното ми решение:

using System;
using System.Numerics;

class Tribonacci
{
static void Main()
{

BigInteger t1 = BigInteger.Parse(Console.ReadLine());
BigInteger t2 = BigInteger.Parse(Console.ReadLine());
BigInteger t3 = BigInteger.Parse(Console.ReadLine());
int N = Convert.ToInt32(Console.ReadLine());
BigInteger[] arrayOfTElements = new BigInteger[N + 1];
arrayOfTElements[0] = t1;
arrayOfTElements[1] = t2;
arrayOfTElements[2] = t3;
BigInteger consecutiveElement = new BigInteger();
for (int i = 0; i < N - 3; i++)
{
consecutiveElement = arrayOfTElements[i] + arrayOfTElements[i + 1] + arrayOfTElements[i + 2];
arrayOfTElements[i + 3] = consecutiveElement;
}
Console.WriteLine(consecutiveElement);

}
}

 

Но питането ми е такова:

Изкарва ми 90/100 точки в bgcoder.com при проверка. Някой може ли да хвърли едно око и да даде някаква насока :?

Test #4 (Incorrect answer)

Time used: 0.012 s
Memory used: 9.01 MB
0
HPetrov avatar HPetrov 822 Точки

Ако имаш N = 1 нищо няма да ти изкара а трябва да ти принтира 1вия елемент.

0
Plami avatar Plami 373 Точки

Също така Наков спомена, че трябва да проверим версията на .Net Framework. Доколкото си спомням трябваше да е 4.5. Иначе пак няма да излезе. Поправете ме ако греша :)

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Ами аз се справих с BigInteger' a и using System.Numerics , но имам някаква друга грешка която ми пречи да изкарам 100/100 точки :?

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Открих си проблема, след малко ще си постна готовият код изпуснал съм една проверка:)(малко ми е странно сам се питам сам си отговарям - > раздвоение на личността :Д)

1
Plami avatar Plami 373 Точки

Не е лесно да си програмист - много гласове в главата, а пък на всичкото отгоре всеки един на различно мнение :D

1
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки
Та извинявам се първо, че си наводних темата с глупости, но ето го и финалния резултат от дадената задача, която изкарва 100/100 точки в системата на bgcoder.com:

using System;
using System.Numerics;

class Tribonacci
{
static void Main()
{

BigInteger t1 = BigInteger.Parse(Console.ReadLine());
BigInteger t2 = BigInteger.Parse(Console.ReadLine());
BigInteger t3 = BigInteger.Parse(Console.ReadLine());
int N = Convert.ToInt32(Console.ReadLine());
BigInteger[] arrayOfTElements = new BigInteger[N + 1];
arrayOfTElements[0] = t1;
arrayOfTElements[1] = t2;
arrayOfTElements[2] = t3;
BigInteger consecutiveElement = new BigInteger();
if (N == 1 || N == 2 || N == 3)
{
if (N == 1)
{
Console.WriteLine(t1);
}
else if (N == 2)
{
Console.WriteLine(t2);
}
else if (N == 3)
{
Console.WriteLine(t3);
}

}
else if (N > 3)
{
for (int i = 0; i < N - 3; i++)
{
consecutiveElement = arrayOfTElements[i] + arrayOfTElements[i + 1] + arrayOfTElements[i + 2];
arrayOfTElements[i + 3] = consecutiveElement;
}
Console.WriteLine(consecutiveElement);
}
}
}

0