public static string AddTwoNumber(string x, string y)
{
var X = x.ToCharArray().ToList().Select(s => Convert.ToInt32(s.ToString())).ToList();
var Y = y.ToCharArray().ToList().Select(s => Convert.ToInt32(s.ToString())).ToList();
X.Reverse();
Y.Reverse();
if (X.Count > Y.Count)
{
return Add(X, Y);
}
else
{
return Add(Y, X);
}
}
public static string Add(List<int> first, List<int> second)
{
var remainder = 0;
var list = new List<int>();
for (int i = 0; i < first.Count; i++)
{
var temp = 0;
if(i<second.Count)
{
temp = second[i];
}
var num = temp + first[i] + remainder;
var inString = num.ToString();
if (inString.Length > 1)
{
list.Add(Convert.ToInt32(inString[1].ToString()));
remainder = Convert.ToInt32(inString[0].ToString());
}
else
{
list.Add(Convert.ToInt32(inString[0].ToString()));
remainder = 0;
}
}
list.Reverse();
var str = string.Empty;
foreach (var item in list)
{
str += item;
}
return str;
}