c 大整數加法 減法 乘法

2021-09-25 04:30:35 字數 1140 閱讀 3572

大整數加法、大整數減法、大整數乘法、大整數除法(還未寫)

大整數的加法:先對資料進行預處理是兩個大整數的位數相等,位數少的那個數在高位補0,使兩數的位數相等,便於計算資料的進製,只需要在函式呼叫的結尾檢查一下最高為是否存在進製的情況,如果需要進製則只需要在最後將進製的數加入到返回值中。加法是對兩個數從低位向高為相加,對每次相加的值,計算進製,取模加入到當前位置。

大整數減法:函式先對兩個相等的數比較如果相等則直接返回0,然後判斷兩個數的大小,如果被減數大於減數則符號取負,兩數交換位置;然後按照加法的做法對較小的數高位補0,最後由低位向高位按位相減。

大整數乘法:大整數的乘法與加法減法有極大的區別,乘法雖然也是按位相乘,但是不能直接簡單的將字串相拼接,例如兩個兩位數相乘

即在計算前因先對

#include#includestd::string add(std::string s1,std::string s2) 

if(up)

s3="1"+s3;

return s3;

}std::string sub(std::string s1,std::string s2)

std::string s3;

bool flag=false;

if(s1.length()=0; i--) else

s3=(char)('0' + k) + s3;

} k=0;

while(s3[k]=='0' )

s3=s3.substr(k);

if(flag)

s3="-"+s3;

return s3;

}std::string mul(std::string s1,std::string s2)

k=(char)(s3[i+j-d]+up-'0');

up=k/10;

s3[i+j-d]=(char)(k%10+'0');

d++;

}} }

return flag + s3;

}

大整數運算之 大整數加法 減法 乘法

其實大整數的問題都是在像我們打草稿的時候列豎式一樣的,不要告訴我你不知道什麼叫豎式 其實我開始也不知道它叫這個名字 所謂豎式,就是你打草稿算算術的方法,小學知識 比如你寫 11 9 11 9 20數a,b,求和,求差 數的長度不超過1000 貼個 先輸入乙個數,代表資料的組數n,然後輸入n組a b ...

大型整數運算 加法, 減法, 乘法

from 用int數模仿真整數的每乙個位,大於10的要進製,負數要借位。include include define max digit 500 大數運算 加法 int multiply int a,int b,int result 大數運算 乘法 int add int a,int b,int r...

大整數問題,乘法,加法,階乘

大整數相乘 c i j a i b j 陣列的每一位相乘然後相加,並得到最終結果 再考慮進製問題 include include define size 50 int a size b size c size 2 void big multi int a,int b,int c c k 0 prin...