Hirdetés

Új hozzászólás Aktív témák

  • Dinter

    addikt

    El sem hiszem. Két napi szenvedés árán kész :))

    static void Main(string[] args)
    {
    var carry = false;
    var result = String.Empty;
    List<string> numbers=new List<string>();//számok listája
    numbers.Add("1");
    numbers.Add("1");
    int count = 1;//list hanyadik eleme

    while(numbers[count].Length<2000){
    string num1 = numbers[count - 1].PadLeft(numbers[count].Length,'0');
    string num2 = numbers[count];

    for (int i = numbers[count].Length - 1; i >= 0; i--)
    {

    var augend = Convert.ToInt32(num1.Substring(i, 1));
    var addend = Convert.ToInt32(num2.Substring(i, 1));
    var sum = augend + addend;
    sum += (carry ? 1 : 0);
    carry = false;
    if (sum > 9 && num1.Length > 1 && num2.Length > 1)
    {
    carry = true;
    sum -= 10;
    }

    result = sum.ToString()+result;
    }

    if (carry)
    {
    result = "1" + result;
    }

    numbers.Add(result);
    count++;
    result = String.Empty;

    }

    Az első probléma az volt, hogy a result-ot nem cleareltem, így mindig elé írta az előző számot. Aztán az 5+8-nál csúszott el, mivel ott nincs következő jegy, ahova hozzáadja, ezért a következő számhoz adta hozzá. De megvan, köszönöm a segítséget. :R

Új hozzászólás Aktív témák