//高精度演算法
//日期: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...