#include
#include
#include
struct dnode;
class bigint
bigint(bigint &a);
~bigint()
}friend bigint operator +(bigint& a,bigint& b);
friend bigint operator *(bigint& a,bigint& b);
bigint operator = (const bigint &bignum);
};bigint::bigint(bigint &a)
}bigint bigint::operator = (const bigint &a)//過載=
return *this;
}void bigint::insert(int n)
else
}void bigint::input()
}void bigint::shaw()
cout n=b.head->prv; while(m!=a.head&&n!=b.head)//當加數、被加數都不為空時 while(n!=b.head)//加數不為空時 while(m!=a.head)//被加數不為空時 if(y==1)//判斷最後一次是否加進制 temp.insert(y); return temp; } void bigint::clear() bigint operator *(bigint& a,bigint& b) if(y!=0) }else while(m!=a.head)//當乘數不為0時 if(y!=0) temp=temp+c;//將本次乘法結果與上次相加,結果存在temp中。 c.clear();//清空c c.insert(0);//再初始化c }q++;//記錄乘幾次 n=n->prv;//乘數後移 m=m->prv;//被乘數復位 } return temp; }void main()break; case 2: break; case 0: break; default:}} } l1 046.整除光棍 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字 ... 一般計算方法分治法 理想狀態下 分治法 非理想狀態下 理想狀態下 x y e 10 2 n 2 g e f 1 0 n 2 f xy e 10 g e f 10 f xy e 1 02 n 2 g e f 10 n 2 f非理想狀態下 x y e 10 nx 2 ny 2 g e 1 0 nx 2 ... 演算法競賽入門經典 這本書並沒有對大數乘法實現,所以自己補充了一下,乘法的實現很簡單,就是再其資料結構基礎上把每寬為8位的十進位制數看成多項式的係數,vector的下標看成多項式的指數,然後再對應相乘相加就可以了,注意係數超過8位 將超八位的補分進製。我這裡是笛卡爾相乘。一般來說是夠用的。但其實多項...C 大整數除法 大整數乘法
分治 大整數乘法(C )
C 實現大整數乘法