Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Bint {
- int m[2000];
- Bint operator + (Bint k) {
- int ans[1100];
- for (int i=0;i<1000;i++) { if (k.m[i]+m[i]<10) ans[i]+=k.m[i]+m[i]; else { ans[i]+=k.m[i]+m[i]-10; ans[i+1]+=1; }
- ans[i+1]+=ans[i]/10;
- ans[i]%=10;
- }
- Bint qq;
- for (int i=0;i<1000;i++) qq.m[i]=ans[i];
- return qq;
- };
- Bint operator * (Bint k) {
- int ans[1100];
- for (int i=0;i<500;i++) {
- for (int j=0;j<500;j++) {
- ans[i+j]+=m[i]*k.m[j];
- }
- }
- for (int i=0;i<1099;i++) { ans[i+1]+=ans[i]/10; ans[i]%=10; }
- Bint qq;
- for (int i=0;i<1000;i++) qq.m[i]=ans[i];
- return qq;
- };
- };
- int main() {
- Bint a;
- Bint b;
- a.m[0]=1;
- b.m[0]=2;
- Bint c=a*b;
- for (int i=0;i<10;i++) cout<<c.m[i]<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement