高精度演算法 加法,減法,乘法

2021-10-10 10:20:25 字數 1280 閱讀 1044

//高精度演算法

//日期:11月10日

#include#includevoid add(char* a,char* b);

void sub(char* a,char* b);

void mul(char* a,char* b);

int main(),n2[202]=;

scanf("%s %s",n1,n2); //陣列名稱為首位址

add(n1,n2);

sub(n1,n2);

mul(n1,n2);

return 0;

}//原理:小學加法的原理(豎式計算:先算個位,再進製去算十位)

void add(char* a,char* b),b1[202]=;

for (i = 0; i < alen; ++i)

for (i = 0; i < blen; ++i)

if ( alen < blen )

for (i = 0; i <= alen; ++i)

while ( a1[i] == 0 && i != 0 )

for (; i >= 0 ; i--)

return;

}//原理:小學減法的原理(從高位開始,借位)

void sub(char* a,char* b),b1[202]=;

for (i = 0; i < alen; ++i)

for (i = 0; i < blen; ++i)

if ( alen < blen )

for (i = 0; i <= alen; ++i)

a1[i] = t;

}while ( a1[i] == 0 && i != 0 )

for (; i >= 0 ; i--)

return;

}void mul(char* a,char* b),b1[202]=,c[400]=;

for (i = 0; i < alen; ++i)

for (i = 0; i < blen; ++i)

//從低位向高位計算(結合參考鏈結的圖再畫圖分析即可)

for (i = 0; i < alen; ++i)

}//對陣列c的值進行處理(讓c每個元素都變成個位數)

for (i = 0; i < alen+blen; ++i)

while ( c[i] == 0 && i != 0 )

for (; i >= 0 ; i--)

return;

}

高精度加法 減法 乘法 除法

給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整數長度 100000 輸入樣例 1223 輸出樣例 35高精度加法利用陣列儲存每一位數,把最後一位儲存到陣列的第一位會方便操作一些,然後就是模擬人為加法的過程 include using...

高精度加法 高精度減法

雖然以前自己就學習過,但是自己打出來的 目測效率不高,也不夠精簡 因此學習一下eden裡面的這一題 big integer add subtract ifndef big integer define big integer include include using std string usin...

高精度減法,高精度乘法

高精度減法 oj資料偏弱如果新增乙個101 2就錯了,下面這一步是為了防止錯誤的 if a aa 0 可能出現第一位的1被借走的的情況,所以加乙個while找第乙個不是0的 while c i 0 i include include include include include include u...