UVA10494大數類模板

2021-07-04 03:19:56 字數 1239 閱讀 2771

做了幾個題,過載了一下加法,乘法,除法,減法,雖然都不是很標準,但是那幾道題目都a了,

這道題不用模板其實很好做,一邊擷取,一邊做除法存下了,同時做mod就行了。

貼下我自己敲的模板和這道題的簡單做法:

#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

#define int (1<<31)-1;//2147483647

const int maxn=1000;

struct bign

bign operator =(const char* num)

else

}return c;

}bign operator /(const int &b) const

temp=(temp-s[i])/10;

for(;i>=0;i--)

else

}for(int i=0;i=0;i--)

if(s[i]!=b.s[i]) return s[i](const bign &b) const

bool operator >=(const bign &b) const

};istream &operator >> (istream &in,bign &x)

ostream &operator << (ostream &out,const bign &x)

{ out<>a>>s>>b)

{bign temp=b;

if(b==1)

{if(s=='%')

cout<<'0'<#include const int maxsize=10000000;

char s[maxsize],ans[maxsize];

int main()

{ char c;

long long b,a;

memset(s,0,maxsize);

while(scanf("%s %c %lld",s,&c,&b)!=eof)

{ memset(ans,0,maxsize);

int i;

a=0;

int j=0;

int len=strlen(s);

for(i=0;i

大數運算 1 大數儲存

int 16位 32768 32767 注 現在大多數的編譯器的int型是32位的 也就是說跟long型的大小一樣 long long或 int64 64位 9223372036854775808 9223372036854775807 float 32位 精確到小數點後6 7位 double 64...

大數運算 4 大數乘法

首先說一下乘法計算的演算法 同樣是模擬人工計算時的方法。從低位向高位乘,在豎式計算中,我們是將乘數第一位與被乘數的每一位相乘,記錄結果之後,用第二位相乘,記錄結果並且左移一位,以此類推,直到計算完最後一位,再將各項結果相加,得出最後結果。計算的過程基本上和小學生列豎式做乘法相同。為程式設計方便,並不...

大數運算 2 大數加法

大數加法的中心思想就是 模擬人工列豎式算加法的方法。先從最低位開始相加,判斷是否進1,一直到最高位。例如 求12545642233 278545的和,該怎麼算?是這樣的 3 3 2 2 4 6 5 4 5 2 1 0 2 7 8 5 4 5 0 0 0 0 0 0 5 不進製,繼續算下一位 0 進製...