Проблем с BigInteger
Здравейте колеги
казвам се Венимир Петков и се уча онлайн от клиповете започнах със C# и съм стигнал до цикли вдъхновен от новите знания седнах и написах програма за намиране числата на Фибоначи например въвеждате 5-то число и до принтира първите 5 числа и т.н.
Проблема обаче е че UINT след 46 число ми дава Overflow затова му сложих Catch като временно решение на проблема сега обаче искам да добавя BigInteger, но не ми позполява да приложа оператора + към BigInteger. Може ли да ми помогнете като ми кажете как да го направя. Благодаря предварително.
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FibboNumbers
{
class FibboNumbers
{
static void Main(string[] args)
{
Console.WriteLine("Imput a number from 1 to 46:");
uint FibboCountLenght = uint.Parse(Console.ReadLine());
if (FibboCountLenght < 0)
{
Console.WriteLine("Imput a positive number");
}
uint FirstNum = 0;
uint SecondNum = 1;
uint result;
byte counter = 1;
Console.WriteLine("Fibonacci Numbers are :");
while (FibboCountLenght > 0)
{
checked
{
try
{
result = FirstNum + SecondNum;
Console.WriteLine("{0} number is = {1}",counter++, result);
FirstNum = SecondNum;
SecondNum = result;
}
catch(OverflowException)
{
Console.WriteLine("overflow you can imput a number max 46");
break;
}
}
FibboCountLenght--;
}
}
}
}
Добре това го има и в интернет въпроса е как да го inject във кода така че result да не се препълва и програмата да може да пресмята повече от 46 числа
Правиш стъпки 1 и 2 от горния пост, след това на 6-те места, където имаш uint ги сменяш с BigInteger и това е, кода си работи. Ако си сложил BigInteger преди да си добавил референцията към System.Numerics, може да си натиснал ctrl + . и visual studio да ти е направило празен клас BigInteger, който няма как да работи с оператора +. Истинкият BigInteger в C# си работи с всички оператори както всеки други числови тип.
Аз мислех, че се подразбира, ако ще ползваш BigInteger, да не слагаш uint. Все едно да искаш стринг, ама да пишеш чар, нали.. Успех