分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
#include
#include
#include
#include
using
namespace
std; #define maxn 9999
#define maxsize 10
#define dlen 4
class
bignum //建構函式 bignum(const
int); //將乙個int型別的變數轉化為大數 bignum(const
char*); //將乙個字串型別的變數轉化為大數 bignum(const bignum &); //拷貝建構函式 bignum &operator=(const bignum &); //過載賦值運算子,大數之間進行賦值運算
friend istream& operator>>(istream&, bignum&); //過載輸入運算子
friend ostream& operator
<
int &) const; //過載除法運算子,大數對乙個整數進行相除運算 bignum operator^(const
int &) const; //大數的n次方運算
intoperator%(const
int &) const; //大數對乙個int型別的變數進行取模運算
bool
operator>(const bignum & t)const; //大數和另乙個大數的大小比較
bool
operator>(const
int & t)const; //大數和乙個int型別的變數的大小比較
void
print
(); //輸出大數}; bignum::bignum(const
int b) //將乙個int型別的變數轉化為大數 a[len++] = d;}bignum::bignum(const
char*s) //將乙個字串型別的變數轉化為大數}bignum::bignum(const bignum & t) : len(t.len) //拷貝建構函式 bignum & bignum::operator=(const bignum & n) //過載賦值運算子,大數之間進行賦值運算istream& operator>>(istream & in, bignum & b) //過載輸入運算子 b.a[count]=sum; count++; } b.len =count++; return in; }ostream& operator
<
//兩個大數之間的相加運算 } if(t.a[big] != 0) t.len = big + 1; else t.len = big; return t;}bignum bignum::operator-(const bignum & t) const
//兩個大數之間的相減運算 else big=t1.len; for(i = 0 ; i < big ; i++) else t1.a[i] -= t2.a[i]; } t1.len = big; while(t1.a[len - 1] == 0 && t1.len > 1) if(flag) t1.a[big-1]=0-t1.a[big-1]; return t1; } bignum bignum::operator*(const bignum & t) const
//兩個大數之間的相乘運算 else } if(up != 0) ret.a[i + j] = up; } ret.len = i + j; while(ret.a[ret.len - 1] == 0 && ret.len > 1) ret.len--; return ret; } bignum bignum::operator/(const
int & b) const
//大數對乙個整數進行相除運算 ret.len = len; while(ret.a[ret.len - 1] == 0 && ret.len > 1) ret.len--; return ret; }int bignum::operator %(const
int & b) const
//大數對乙個int型別的變數進行取模運算 return d;}bignum bignum::operator^(const
int & n) const
//大數的n次方運算 m-=i; ret=ret*t; if(m==1) ret=ret*(*this); } return ret;}bool bignum::operator>(const bignum & t) const
//大數和另乙個大數的大小比較 else
return
false; }bool bignum::operator >(const
int & t) const
//大數和乙個int型別的變數的大小比較void bignum::print() //輸出大數 cout
<< endl;}int
main
(void)
給我老師的人工智慧教程打call!
大整數類c 實現
在日常使用c 的過程中,經常會遇到數字太大越界的情況,對於這樣的大整數運算,我們可以用模擬比算的方法來實現,但是這樣每次運算都要實現這樣的演算法會帶來一定的不方便,我們希望能像int這樣的內建型別一樣使用大整數,所以我們實現乙個大整數struct 感謝劉汝佳老師的演算法競賽入門經典一書 struct...
BigInteger 大整數類(C )
有時候需要用到大整數,這裡放乙個自己寫的大整數結構體 biginteger 實現的功能如下 其中乘法運算和除法運算都是 o n 2 o n 2 o n2 的複雜度。struct biginteger biginteger const biginteger y biginteger const big...
大整數C 類的實現
include include include includeusing namespace std class bigint ostream operator ostream out,bigint bint 該函式得作用是將向量中的每乙個數字轉化為字元 數字 0 就相當於將數字轉化為字元 stri...