Das rechnen schafft mein Programm in 12 Millisekunden, nur das anzeigen dauert ein paar Sekunden
(12 ms wenn beide Zahlen 200000 Ziffern haben)
Code:
var start = DateTime.Now;
var zahl1 = '0' + textBox1.Text;
var zahl2 = '0' + textBox2.Text;
while (zahl1.Length < zahl2.Length)
{
zahl1 = '0' + zahl1;
}
while (zahl2.Length < zahl1.Length)
{
zahl2 = '0' + zahl2;
}
char[] Result = new char[zahl1.Length];
int temp = 0;
int carry = 0;
for (int i = zahl1.Length - 1; i >= 0; i--)
{
temp = ((byte)zahl1[i] & 15) + ((byte)zahl2[i] & 15) + carry;
Result[i] = (char)(temp % 10 | 48);
carry = temp / 10;
}
var res = new String(Result);
var ende = DateTime.Now;
label1.Text = (ende - start).TotalMilliseconds.ToString();
label1.Refresh();
textBox3.Text = res;