大整數運算

2021-06-25 07:34:31 字數 1236 閱讀 4826

包括大整數的四則運算,一般都是用陣列來模擬大整數的,如果是每一位陣列只存一位數的話,空間浪費比較嚴重,所以這裡每一位陣列儲存4位數,所以是10000進製。

加法:輸入:不超過兩百位的非負整數,可能有多餘的前導零。

輸出:相加後的結果,不能有多餘的前導零

首先是一些基本的常量定義

#define bir 10000

#define rl 4

#define max_len (200/rl+1)

列印大整數函式:

void print(const int x)

else if(x[i]>0)

}if(output==0)

printf("0");

}

從字串中提取到陣列中:

void input(const char s,int x)

x[j++] = sum;

}}

加法運算:

void bigint_add(const int x,const int y,int z)

}}

減法運算:

void bigint_sub(const int x, const int y, int z)//x>y

}}

乘法運算:

void bigint_mul(const int x, const int y, int z)

} }}

除法運算:

除法比較難

int length(const int x)

} return len;

}int bigint_sub2(int x, const int y)

else if (x[i] < y[i])

leny = lenx;

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

for (i = 1; i < leny; i++)

leny--;

yy[leny] = 0;

} for (i = 0; i < times; i++) }

free(yy);

}

超長整數運算(大整數運算)

問題描述 將形如1234567890123456789不能儲存在long變數中的數稱為超長整數或大整數。現討論大整數的加減乘除運算。思想方法 用陣列儲存超長整數,且為處理的簡單起見約定每個元素存放相同位的數字。如 每個元素存放4位。1 加法運算 void add int a,int b,int c ...

大整數運算

大整數加法 實現 include include intmain c lenc x while c lenc 0 lenc 1 lenc for int i lenc i 1 i printf d c i return0 大整數減法 實現 include include intmain b 205 ...

大整數運算

大整數儲存 由於大整數超過int範圍,因此需要運用陣列進行儲存。但是在進行大整數儲存過程中為了方便獲取大整數長度,我們還會定義乙個int型變數len來記錄陣列長度,由此可得結構體型別如下 struct bign 進行輸入時是先用字串讀入,然後再把字串另存為bign結構體。由於讀入順序與整數在陣列中的...