簡單的大數模板,包含加減乘除,注意,下面的函式都沒有考慮首位為』-'的情況,所以要根據題目來修改
這裡解釋一下為什麼存入結構的時候要逆著儲存
因為用字串讀入數字的時候,數字的高位對應著字串的低位,而數字的低位對應著字串的高位,所以要倒著給結構體賦值,使其高低位相同。
#include
#include
#include
using
namespace std;
struct bign};
//字元陣列轉換到結構體中
bign change
(char str)
return a;
}//比較大小
intcompare
(bign a,bign b)
return0;
}}//對於兩個物件都是同符號的情況 都小於零則需要輸出負號
bign add
(bign a,bign b)
//如果最後進製不等於0,則再進一位
if(carry!=0)
return c;
}//傳入的應該是a>b
bign sub
(bign a,bign b)
c.d[c.len++
]=a.d[i]
-b.d[i];}
while
(c.len-
1>=
1&&c.d[c.len-1]
==0)return c;
}//高精度乘法 如果有負號 傳入絕對值 最後輸出負號
bign multi
(bign a,
int b)
//如果最後還有進製
while
(carry!=0)
return c;
}//高精度除法,r為餘數
bign divide
(bign a,
int b,
int&r)
}while
(c.len-
1>=
1&&c.d[c.len-1]
==0)return c;
}void
print
(bign a)
}int
main()
模板整理 大數模板
include include include include include includeusing namespace std define maxn 9999 define maxsize 1000 define dlen 4 class bignum 建構函式 bignum const i...
大數模板1
分別使用c 中的運算子過載的方法來實現大數之間的數 算,包括加法 減法 乘法 除法 n次方 取模 大小比較 賦值以及輸入流 輸出流的過載。並且使用這個大數模板,順利ac了hdoj上的1134這個題目的catalan數計數問題。大數模板的 如下 include include include incl...
大數模板1
include include include include include include using namespace std define maxn 9999 define maxsize 10 define dlen 4 class bignum 建構函式 bignum const in...