做了幾個題,過載了一下加法,乘法,除法,減法,雖然都不是很標準,但是那幾道題目都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 進製...