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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.