超大正整数加法与乘法最笨方法实现

using System.Text;

private string AddNumber(string numA, string numB)
{
int lenA=0, lenB=0;
int lenI=0, intTen=0;
int intA=0, intB=0;

StringBuilder result=new StringBuilder("");
lenA=numA.Length;
lenB=numB.Length;
if(lenA>lenB)
lenI=lenA;
else
lenI=lenB;
for(int i=0; i

 1<leni; 10;="" else="" i++)="" if(i<lena)="" if(i<lenb)="" if(intten="" int="" inta="0;" intb="0;" intten="(int)temp" result.insert(0,convert.tostring((int)temp%10));="" temp="intA+intB+intTen;" {="" }="">0)   
 2result.Insert(0,Convert.ToString(intTen));   
 3return result.ToString();   
 4} 
 5
 6private string MultiNum(string NumA, string NumB)   
 7{   
 8int lenA=0, lenB=0;   
 9int lenI=0; 
10
11string result="0";   
12string AddResult="0";   
13int Dig=0; 
14
15lenA=NumA.Length;   
16lenB=NumB.Length;   
17if(lenA&gt;lenB)   
18{   
19lenI=lenB;   
20for(int i=0; i&lt;lenI; i++)   
21{   
22AddResult="0";   
23Dig=Convert.ToInt16(NumB.Substring(lenB-i-1,1));   
24for(int j=0; j&lt;Dig; j++)   
25AddResult=AddNumber(NumA,AddResult);   
26for(int k=0; k&lt;i; k++)   
27AddResult=AddResult + "0";   
28result=AddNumber(AddResult,result);   
29}   
30}   
31else   
32{   
33lenI=lenA;   
34for(int i=0; i&lt;lenI; i++)   
35{   
36AddResult="0";   
37Dig=Convert.ToInt16(NumA.Substring(lenA-i-1,1));   
38for(int j=0; j&lt;Dig; j++)   
39AddResult=AddNumber(NumB,AddResult);   
40for(int k=0; k&lt;i; k++)   
41AddResult=AddResult + "0";   
42result=AddNumber(AddResult,result);   
43}   
44}   
45return result;   
46} 
47
48private void button2_Click(object sender, System.EventArgs e)   
49{   
50DateTime dtm1=DateTime.Now;   
51Console.WriteLine(AddNumber("1225225236523456889","1255625622452552"));   
52Console.WriteLine(dtm1.Millisecond + " " + DateTime.Now.Millisecond );   
53} 
54
55private void button3_Click(object sender, System.EventArgs e)   
56{   
57DateTime dtm1=DateTime.Now;   
58string test="1";   
59test=MultiNum("453123123156341231651231563121563151213513422","1254564231541321541385435453453124563131541534313543");   
60Console.WriteLine(test);   
61Console.WriteLine(dtm1.Millisecond + " " + DateTime.Now.Millisecond );   
62}</leni;>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus