結構體biginteger可用於儲存高精度非負整數
struct biginteger
//建構函式
biginteger operator=(
long
long num)
while
(num>0)
;return
*this;}
biginteger operator=(
const string& str)
//賦值運算子
return
*this;}
};
s用來儲存大整數的各個數字。例如,要表示1234,則s=
return out;
}istream&
operator
>>
(istream &in,biginteger& x)
x=s;
return in;
}這樣,可以用cin>>x和cout《高精度類非常常見(定義在結構體內部)
biginteger operator+(
const biginteger& b)
const
int x=g;
if(isize()
)if(isize()
) c.s.
push_back
(x%base)
; g=x/base;
}return c;
}
為了讓使用更加簡單,還可以重定義"+="運算子(定義在結構體內部):
biginteger operator+=
(const biginteger& b)
下面實現比較操作(定義在結構體內部):
bool
operator
<
(const biginteger& b)
const
for(
int i=s.
size()
-1;i>=
0;i--)}
return
false
;//相等
}
一開始就比較兩個biginteger的位數,不相等則直接返回,否則直接從後往前比較(因為低位在vector前面)。前提是兩個數都沒有前導零,否則會出錯。
只需定義「小於」這一符號,即可用它定義其他所有比較運算子(對於biginteger這個例子,「」可直接定義為sb.s,不過不具一般性。):
bool
operator
>
(const biginteger& b)
const
bool
operator
<=
(const biginteger& b)
const
bool
operator
>=
(const biginteger& b)
const
bool
operator!=(
const biginteger& b)
const
bool
operator==(
const biginteger& b)
const
大整數類的應用 bjfu1005
寫了一上午,哦哦哦!通過字串進行n的階乘的運算,從0位置開始,若有進製,將答案長度加上1。並且對後面的按照進製進行賦值。include include include chara 100000 voidjiecheng intn while cin printf count is d n count...
大整數類 模板
bigint v2.0 by kunsoft include include include include include include include include include using namespace std typedef long long llt class bigint ...
C 大整數類
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!include include include include using namespace std define maxn 9999 define maxsize 10 define dlen 4 class bignum 建構函式 bignu...