Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class Program
- {
- //Write a method that adds two positive integer numbers represented as arrays of digits
- //(each array element arr[i] contains a digit; the last digit is kept in arr[0]).
- //Each of the numbers that will be added could have up to 10 000 digits.
- static void Main()
- {
- int[] number1 = {7,8,4,2,6};
- int[] number2 = {1,2,3,4,4,5,8,9};
- AddNumbers(number1, number2);
- }
- static void AddNumbers (int[]number1, int[]number2)
- {
- int add = 0;
- int resultLength=Math.Max(number1.Length, number2.Length) + 1;
- int[] result = new int[resultLength];
- for (int i = 0; i < resultLength-1; i++)
- {
- if (i < Math.Min(number1.Length, number2.Length))
- {
- if ((number1[i] + number2[i]) < 10)
- {
- result[result.Length - i - 1] = number1[i] + number2[i] + add;
- add = (number1[i] + number2[i] + add) / 10;
- }
- else if ((number1[i] + number2[i]) >= 10)
- {
- result[result.Length - i - 1] = (number1[i] + number2[i] + add) % 10;
- add =(number1[i] + number2[i] + add)/ 10;
- }
- }
- else if(i>= Math.Min(number1.Length, number2.Length))
- {
- if ((Math.Max(number1.Length, number2.Length) == number1.Length))
- {
- if ((number1[i] + add) < 10)
- {
- result[result.Length - i - 1] = number1[i] + add;
- add = (number1[i] + add) / 10;
- }
- else if ((number1[i] + add) >= 10)
- {
- result[result.Length - i - 1] = (number1[i] + add) % 10;
- add = (number1[i] + add) / 10;
- }
- }
- else if ((Math.Max(number1.Length, number2.Length) == number2.Length))
- {
- if ((number2[i] + add) < 10)
- {
- result[result.Length - i - 1] = number2[i] + add;
- add = (number2[i] + add) / 10;
- }
- else if ((number2[i] + add) >= 10)
- {
- result[result.Length - i - 1] = (number2[i] + add) % 10;
- add = (number2[i] + add) / 10;
- }
- }
- }
- }
- // Print the result
- for (int i = 0; i < number1.Length; i++)
- {
- Console.Write(number1[i]);
- }
- Console.WriteLine();
- Console.WriteLine("+");
- for (int i = 0; i < number2.Length; i++)
- {
- Console.Write(number2[i]);
- }
- Console.WriteLine();
- Console.WriteLine(new string('-',resultLength));
- if (result[0] == 0)
- {
- for (int i = 1; i < result.Length; i++)
- {
- Console.Write(result[i]);
- }
- }
- else
- {
- for (int i = 0; i < result.Length; i++)
- {
- Console.Write(result[i]);
- }
- }
- Console.WriteLine();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment