Проблем при една от задачите от тech-модула-Sum Big Numbers(стрингообработка)
Може ли някой да ми каже защо кода ми се чупи при големи числа?
Условието е много просто:
Да се съберат две цели числа и да се изведе тяхната сума без да се използва директно BigInteger и BigDecimal.
При тртият нулев тест към сумата на двете съответни цифри хе се добавя остатъка 1.?!?
Ето го и кода :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Big_Integer1
{
    class Program
    {
        static void Main(string[] args)
        {
            string word1 = Console.ReadLine();
            string word2 = Console.ReadLine();
            int maxlength = Math.Max(word1.Length, word2.Length);
            string outputword="";
            int currentchar;
            int remainder = 0;
            
                if (word1.Length<word2.Length)
                {
                    word1 =word1.PadLeft(word2.Length,'0');
                }
                if(word1.Length > word2.Length)
                {
                    word2 = word2.PadLeft(word1.Length, '0');
                }
            for (int i = maxlength - 1; i >= 0; i--)
            {
                currentchar = int.Parse(word1[i].ToString()) + int.Parse(word2[i].ToString());
                if (currentchar >= 10)
                {
                    if (i == 0)
                    {
                        outputword += reverse(currentchar.ToString());
                    }
                    else
                    {
                        currentchar -= 10;
                        remainder = 1;
                        outputword += currentchar.ToString();
                    }
                }
                else
                {
                    if (i == 0)
                    {
                        outputword +=reverse((currentchar + remainder).ToString());
                        Console.WriteLine(reverse(outputword));
                        return;
                    }
                    if (currentchar + remainder >= 10)
                    {
                        outputword += (currentchar + remainder - 10);
                        remainder = 1;
                    }
                    else
                    {
                        outputword += (currentchar + remainder).ToString();
                        remainder = 0;
                    }
                }
            }                                     
            Console.WriteLine(reverse(outputword));
        }
        static string reverse(string s)
        {
            string s1="";
            for (int i =s.Length-1; i>=0;i--)
            {
                char currentsimvol = s[i];
                s1 += currentsimvol.ToString();
            }
            return s1;
        }
    }
}
 
Мерси за решението.