高精度加減乘除 C

2022-04-09 20:23:32 字數 901 閱讀 4401

高精度加法

使用陣列儲存,高位在高角標,低位在低角標,相加向高位進製

// c = a + b,a >= 0,b >= 0

vectoradd(vector&a,vector&b)

if(t) c.push_back(t);

return c;

}

高精度減法

使用陣列儲存,高位在高角標,低位在低角標,相加向高位借位

// c = a - b,滿足a >= b, a >= 0, b >= 0

vectorsub(vector&a, vector&b)

while(c.size() > 1 && c.back() == 0) c.pop_back();

return c;

}

高精度乘低精度

使用陣列儲存,高位在高角標,低位在低角標,相乘整個b向高位進製

// c = a * b, a >= 0, b > 0

vectormul(vector&a, int b)

return c;

}

高精度除以低精度

使用陣列儲存,高位在高角標,低位在低角標,從最高位開始,每一位除以除數,得數為該位的數字,餘數乘10加上下一位的數參與下一位的運算

// a / b = c mod r, a >= 0, b > 0

vectordiv(vector&a, int b, int &r)

reverse(c.begin(), c.end());

while(c.size() > 1 && c.back() == 0) c.pop_back();

return c;

}

高精度加減乘除 C

高精度加法 使用陣列儲存,高位在高角標,低位在低角標,相加向高位進製 c a b,a 0,b 0 vectoradd vector a,vector b if t c.push back t return c 高精度減法 使用陣列儲存,高位在高角標,低位在低角標,相加向高位借位 c a b,滿足a ...

高精度加減乘除

一。高精度乘法 敲了好久。頭禿 str1,str2是存數字的字串,返回最後的位數,c儲存結果 int highmult char str1,char str2,int c b len2 1 int i,j memset a,0,sizeof a memset b,0,sizeof b memset ...

高精度演算法,加減乘除

高精度演算法的兩個基本問題 高精度數的表示和高精度數的基本運算 1.高精度數的表示 首先我想到的是do while 迴圈逆序存放在陣列之中,但書中用string接受並且將其轉化成數字,存放在陣列之中 int arr 100 string str cin str int len str.length ...