在acm的題目中會涉及到一些四則運算,需要注意的是這裡參與四則運算的資料的資料型別並非整型。事實上,儘管整型可以分配4個位元組的儲存空間,但是它所能表示的資料範圍仍然是有限的,所以在比賽上遇到加法等一些涉及四則運算的題目時,一定要留意最終結果或者中間結果是否會超出基本資料型別的表示範圍。如果確定利用基本的資料型別確實會發生溢位問題,那麼就要考慮使用陣列來儲存中間結果或者最終的運算結果。下面給出涉及到四則運算常用的程式設計思路。
一、高精度加法運算
#include#include#include#includeusing namespace std;
int max(int a,int b)
int main()
int main()
cout<
#include#include#include#include#define n 512
using namespace std;
int main()
{ char arr1[n],arr2[n];
int i,j,k;
int x,y,z;
int a[n],b[n],c[2*n];
while(cin>>arr1>>arr2)
{ int len1=strlen(arr1);
int len2=strlen(arr2);
int len=len1+len2;
//初始化
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
k=0;
for(i=len1-1;i>-1;i--)
a[k++]=arr1[i]-'0';
k=0;
for(i=len2-1;i>-1;i--)
b[k++]=arr2[i]-'0';
//計算
for(i=0;i-1 && c[i]==0;i--)
;if(i==-1)
cout<<"0"<-1;i--)
cout<
高精度四則運算模板
1.讀取方式 利用 c string 讀取 2.儲存方式 利用c vector 儲存 示例 string a,b vector int a,b cin a b 對每個字元型數字減去 0 for int i a.size 1 i 0 i a.push back a i 0 數字逆序儲存 低位先存 高位...
C 高精度整型數四則運算
高精度運算的實現思路,就是模擬人們在進行運算時的方法步驟。高精度的數數字比較多,用 int 陣列實現的話會浪費很多空間,這裡我們用 string 去實現。考慮到我們在手動做加減乘法的時候,都是從低位向高位做,只有除法是高位向低位做,為方便運算的實現,這裡我們倒著去存乙個數,例如,我們用 65248 ...
高精度四則運算 大數加減乘除
791 高精度加法 給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整數長度 100000 輸入樣例 1223 輸出樣例 35 include include define lenmax 100000 int main while i ...