Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _08_SumOfArrayOfDigits
- {
- class Program
- {
- static void PrintArray(List<int> list)
- {
- //list.Reverse();
- foreach (var item in list)
- {
- Console.Write(item);
- }
- }
- static List<int> SumDigits(byte[] firstArray, byte[] secondArray)
- {
- List<int> resultArray = new List<int>();
- int remainder = 0;
- int biggerLength = firstArray.Length < secondArray.Length ?
- secondArray.Length : firstArray.Length;
- int firstArrayLength = firstArray.Length;
- int secondArrayLength = secondArray.Length;
- for (int index = 0; index < biggerLength ; index++)
- {
- //Така можеш с минимални промени да започнеш достъпването на масивите
- //от последния им елемент към първия.
- int firstArrayDigit = firstArrayLength - index -1 >= 0 ?
- firstArray[firstArrayLength - index -1] : 0;
- int secondArrayDigit = secondArrayLength - index -1 >= 0 ?
- secondArray[secondArrayLength - index -1] : 0;
- int digit = firstArrayDigit + secondArrayDigit + remainder;
- remainder = digit / 10;
- //Можеш да позлваш resultArray.Insert(0, digit) вместо Add
- // Тогава няма да имаш нужда да обръщаш масива по-долу.
- resultArray.Add(digit % 10);
- }
- if (remainder > 0)
- {
- //Ако използваш Insert горе, трябва да го изпозлваш и тук
- resultArray.Add(remainder);
- }
- //Обърни масива тук, а не в "PrintArray" метода. Защо? Ами :
- // Първо: В идеалният случай, методът ти трябва да прави едно нещо - да принтира например.
- //Твоят метод реално прави две неща: обръща масив(1) и тогава го принтира(2).
- //Второ: Името на метода ти е заблуждаващо - казва се "PrintArray", а
- // името му би трябвало да бъде: "ReverseAndPrintArray"
- resultArray.Reverse();
- return resultArray;
- }
- static void Main()
- {
- byte[] num1 = { 1,6 };
- byte[] num2 = { 5 };
- PrintArray(SumDigits(num1, num2));
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement