c#實現大數相加(字串) string AddBig(string a, string b)
阿新 • • 發佈:2019-01-08
<pre name="code" class="cpp">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ceshi3 { class Program { static void Main(string[] args) { Console.WriteLine("請輸入第一個加數"); string one = Console.ReadLine(); Console.WriteLine("請輸入第er個加數"); string two = Console.ReadLine(); string res = BigAdd(one, two); //Console.WriteLine(res); foreach (var item in res) { Console.WriteLine(item); } } static string BigAdd(string a, string b) { int k = 0; List<int> array = new List<int>(); List<int> one = new List<int>(); List<int> two = new List<int>(); //for (int i = 0; i < a.Length; i++) //{ // one.Add(int.Parse(a[i].ToString())); //} //for (int i = 0; i < b.Length; i++) //{ // two.Add(int.Parse(b[i].ToString())); //} for (int i = 0; i < (a.Length > b.Length ? a.Length : b.Length); i++) { if (i >= b.Length) //two.Add(0); two.Insert(i - b.Length, 0); else two.Add(int.Parse(b[i].ToString())); if (i >= a.Length) one.Add(0); else one.Add(int.Parse(a[i].ToString())); } for (int j = 0; j <= (a.Length > b.Length ? a.Length : b.Length); j++) { array.Add(0); } for (int i = (a.Length > b.Length ? a.Length : b.Length) - 1; i >= 0; i--) { array[i + 1] += (one[i] + two[i])% 10; k = (one[i] + two[i])/ 10; array[i] += k; } if (k == 0) { array.RemoveAt(0); } StringBuilder sb = new StringBuilder(); for (int i = 0; i < array.Count; i++) { sb.Append(array[i]); } string s = sb.ToString(); //Console.WriteLine(s); return s; } } }