Advertisement
Guest User

Sum big numbers

a guest
Oct 19th, 2016
722
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.56 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _10.Sum_big_numbers
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             StringBuilder sum = new StringBuilder("");
  14.             var firstNum = Console.ReadLine();
  15.             var secondNum = Console.ReadLine();
  16.             var first = "";
  17.             var second = "";
  18.            
  19.                 if (firstNum[0] == '0' || secondNum[0] == '0')
  20.             {
  21.                 first = firstNum.TrimStart(new char[] { '0' });
  22.                 second = secondNum.TrimStart(new char[] { '0' });
  23.                 firstNum = first;
  24.                 secondNum = second;
  25.             }
  26.  
  27.  
  28.             //if (firstNum[0] == '0' || secondNum[0] == '0')
  29.             //{
  30.             //    if (firstNum[0] == '0')
  31.             //    {
  32.             //        var length = firstNum.Length;
  33.             //        var flagIsZero = true;
  34.             //        var count = 0;
  35.             //        for (int i = 0; i < length; i++)
  36.             //        {
  37.             //            if (flagIsZero)
  38.             //            {
  39.             //                if (firstNum[i] == '0')
  40.             //                {
  41.             //                    count++;
  42.             //                }
  43.             //                else
  44.             //                {
  45.             //                    flagIsZero = false;
  46.             //                }
  47.             //            }
  48.             //        }
  49.             //        first = firstNum.Remove(0, count);
  50.             //    }
  51.  
  52.             //    if (secondNum[0] == '0')
  53.             //    {
  54.             //        var flagIsZero = true;
  55.             //        var length = secondNum.Length;
  56.             //        var count = 0;
  57.             //        for (int i = 0; i < secondNum.Length; i++)
  58.             //        {
  59.             //            if (flagIsZero)
  60.             //            {
  61.             //                if (secondNum[i] == '0')
  62.             //                {
  63.             //                    count++;
  64.             //                }
  65.             //                else
  66.             //                {
  67.             //                    flagIsZero = false;
  68.             //                }
  69.             //            }
  70.             //        }
  71.             //        second = secondNum.Remove(0, count);
  72.             //    }
  73.  
  74.             //}
  75.             //Console.WriteLine(first);
  76.             //Console.WriteLine(second);
  77.  
  78.             if (firstNum.Length > secondNum.Length)
  79.             {
  80.                 var difference = firstNum.Length - secondNum.Length;
  81.                 secondNum = new string('0', difference) + secondNum;
  82.  
  83.             }
  84.             else if (firstNum.Length < secondNum.Length)
  85.             {
  86.                 var difference = secondNum.Length - firstNum.Length;
  87.                 firstNum = new string('0', difference) + firstNum;
  88.  
  89.             }
  90.  
  91.             //Console.WriteLine(firstNum);
  92.             //Console.WriteLine(secondNum);
  93.             var leftover = 0;
  94.  
  95.             for (int i = secondNum.Length - 1; i >= 0 ; i--)
  96.             {
  97.                
  98.                 var sumNums = Convert.ToInt32(firstNum[i] - '0') + Convert.ToInt32(secondNum[i] - '0') + leftover;
  99.                 if (sumNums < 10)
  100.                 {
  101.                     sum.Append(sumNums);
  102.                     leftover = 0;
  103.                 }
  104.                 else
  105.                 {
  106.                     if (i != 0)
  107.                     {
  108.                         if (Convert.ToInt32(firstNum[i] - '0') + Convert.ToInt32(secondNum[i] - '0') + leftover == 10)
  109.                         {
  110.                             sum.Append('0');
  111.                             leftover = 1;
  112.                         }
  113.                         else
  114.                         {
  115.  
  116.                             sum.Append(sumNums - 10);
  117.                             leftover = 1;
  118.                             //Console.WriteLine(leftover);
  119.                            
  120.                         }
  121.                        
  122.                        
  123.                     }
  124.                     else
  125.                     {
  126.                         sum.Append(string.Join("", Convert.ToString(Convert.ToInt32(firstNum[i] - '0') + Convert.ToInt32(secondNum[i] - '0') + leftover).Reverse()));
  127.  
  128.  
  129.                     }
  130.                    
  131.                 }
  132.                 //Console.WriteLine(sum);
  133.             }
  134.             Console.WriteLine(string.Join("", sum.ToString().Reverse()));
  135.         }
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement