求一个大整数想加的最佳算法.
算法要求:和常规的加法相同.输入的两个数(可能是几千位),这个两个数个位与个位相加,十位与十位相加.百位与百位相加,千万位等相同.满10进位下面是我的思路.但还有很多BUG.但还有很多错误.希望高手再给我一种更好的算法,或是帮我把我的代码改进一下.
忠心感谢!
using System;namespace dostext
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字");
            string s1 = Console.ReadLine();
            Console.WriteLine("请输入第二个数字");
            string s2 = Console.ReadLine();
            string[] arr1 = new string[s1.Length];
            string[] arr2 = new string[s2.Length];
            int len = 0;//数组的长度
            if (s2.Length > s1.Length)
            {
                s1 = s1.PadLeft(s2.Length, '0');
                len = s2.Length;
            }
            else if (s2.Length <= s1.Length)
            {
                s2 = s2.PadLeft(s1.Length, '0');
                len = s1.Length;
            }
            Console.WriteLine("{0}  {1}", s1, s2);
            int[] arr = new int[len+1];//用于保存结果的数组
            int sum = 0;
            char x1, x2;//定义单独取出的数
            for (int j = len; j > 0; j--)
            {
                x1 = s1[j - 1];//单独取出要计算的数
                x2 = s2[j - 1];
                sum = (int)x1 + (int)x2 - 96;//将char类型的转换到int类型,并相加,除去多余的值.
                if (sum >= 10)
                {
                    arr[j - 1] += 1;
                    sum = sum % 10;
                    arr[j - 0] = sum;
                }
                else
                    arr[j - 1] = sum;
            }            int index = 0;
            foreach (int n in arr)
            {
                if (n > 10)
                {
                    arr[index - 1] += 1;
                    arr[index] = n % 10;
                }
                index++;
                Console.Write(n);
            }
        }
    }
}