nadia_dr

AddNumbers

Dec 28th, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.35 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4.  
  5. class Program
  6. {
  7.     //Write a method that adds two positive integer numbers represented as arrays of digits
  8.     //(each array element arr[i] contains a digit; the last digit is kept in arr[0]).
  9.     //Each of the numbers that will be added could have up to 10 000 digits.
  10.  
  11.     static void Main()
  12.     {
  13.         int[] number1 = {7,8,4,2,6};
  14.         int[] number2 = {1,2,3,4,4,5,8,9};      
  15.         AddNumbers(number1, number2);
  16.     }
  17.     static void AddNumbers (int[]number1, int[]number2)
  18.     {
  19.         int add = 0;
  20.         int resultLength=Math.Max(number1.Length, number2.Length) + 1;
  21.         int[] result = new int[resultLength];
  22.  
  23.         for (int i = 0; i < resultLength-1; i++)
  24.         {
  25.             if (i < Math.Min(number1.Length, number2.Length))
  26.             {
  27.                 if ((number1[i] + number2[i]) < 10)
  28.                 {
  29.                     result[result.Length - i - 1] = number1[i] + number2[i] + add;
  30.                     add = (number1[i] + number2[i] + add) / 10;
  31.                 }
  32.                 else if ((number1[i] + number2[i]) >= 10)
  33.                 {
  34.                     result[result.Length - i - 1] = (number1[i] + number2[i] + add) % 10;
  35.                     add =(number1[i] + number2[i] + add)/ 10;
  36.                 }
  37.             }
  38.             else if(i>= Math.Min(number1.Length, number2.Length))
  39.             {
  40.                 if ((Math.Max(number1.Length, number2.Length) == number1.Length))
  41.                 {
  42.  
  43.                     if ((number1[i] + add) < 10)
  44.                     {
  45.                         result[result.Length - i - 1] = number1[i] + add;
  46.                         add = (number1[i] + add) / 10;
  47.                     }
  48.                     else if ((number1[i] + add) >= 10)
  49.                     {
  50.                         result[result.Length - i - 1] = (number1[i] + add) % 10;
  51.                         add = (number1[i] + add) / 10;
  52.                     }
  53.                 }
  54.                 else if ((Math.Max(number1.Length, number2.Length) == number2.Length))
  55.                 {
  56.                     if ((number2[i] + add) < 10)
  57.                     {
  58.                         result[result.Length - i - 1] = number2[i] + add;
  59.                         add = (number2[i] + add) / 10;
  60.                     }
  61.                     else if ((number2[i] + add) >= 10)
  62.                     {
  63.                         result[result.Length - i - 1] = (number2[i] + add) % 10;
  64.                         add = (number2[i] + add) / 10;
  65.                     }
  66.                 }
  67.             }
  68.  
  69.         }
  70.  
  71.         // Print the result
  72.         for (int i = 0; i < number1.Length; i++)
  73.         {
  74.             Console.Write(number1[i]);
  75.         }
  76.         Console.WriteLine();
  77.         Console.WriteLine("+");
  78.  
  79.         for (int i = 0; i < number2.Length; i++)
  80.         {
  81.             Console.Write(number2[i]);
  82.         }
  83.         Console.WriteLine();
  84.         Console.WriteLine(new string('-',resultLength));
  85.  
  86.         if (result[0] == 0)
  87.         {
  88.             for (int i = 1; i < result.Length; i++)
  89.             {
  90.                 Console.Write(result[i]);
  91.             }
  92.         }
  93.         else
  94.         {
  95.             for (int i = 0; i < result.Length; i++)
  96.             {
  97.                 Console.Write(result[i]);
  98.             }
  99.         }
  100.         Console.WriteLine();
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment