Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int maxn=1000;
  5. struct Bint {
  6. int m[maxn];
  7.  
  8. Bint operator + (Bint k) {
  9. int ans[maxn+2];
  10. for (int i=0;i<maxn;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; }
  11. ans[i+1]+=ans[i]/10;
  12. ans[i]%=10;
  13. }
  14. Bint qq;
  15. for (int i=0;i<maxn+1;i++) qq.m[i]=ans[i];
  16. return qq;
  17. };
  18.  
  19. Bint operator * (Bint k) {
  20. int ans[maxn];
  21. for (int i=0;i<maxn/2;i++) {
  22. for (int j=0;j<maxn/2;j++) {
  23. ans[i+j]+=m[i]*k.m[j];
  24. }
  25. }
  26. for (int i=0;i<maxn-1;i++) { ans[i+1]+=ans[i]/10; ans[i]%=10; }
  27. Bint qq;
  28. for (int i=0;i<maxn;i++) qq.m[i]=ans[i];
  29. return qq;
  30. };
  31.  
  32.  
  33. };
  34. int main() {
  35. Bint a;
  36. Bint b;
  37. a.m[0]=1;
  38. b.m[0]=2;
  39. Bint c=a*b;
  40. for (int i=0;i<10;i++) cout<<c.m[i]<<" ";
  41. return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement