1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <iostream> #include <vector> #include <string> #include <algorithm> #include <iterator> struct char2digit { char operator()(char c) { return c - '0'; } }; class IntegerNumber { std::vector<char> m_digits; public: IntegerNumber() { m_digits.push_back(0); } IntegerNumber(const std::string &number) { std::transform(number.begin(),number.end(), std::back_inserter(m_digits), char2digit()); } IntegerNumber operator+(const IntegerNumber & number) { IntegerNumber result(number); return result; } friend std::ostream & operator<<(std::ostream &out, const IntegerNumber &number); }; std::ostream & operator<<(std::ostream &out, const IntegerNumber &number) { std::copy(number.m_digits.begin(), number.m_digits.end(),std::ostream_iterator<int>(out)); return out; } int main() { IntegerNumber A; IntegerNumber B("12345678954688709764347890"); std::cout << A << std::endl; std::cout << B << std::endl; A = A + B; std::cout << A << std::endl; return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+CgpzdHJ1Y3QgY2hhcjJkaWdpdAp7CiAgIGNoYXIgb3BlcmF0b3IoKShjaGFyIGMpIHsgcmV0dXJuIGMgLSAnMCc7IH0KfTsKCmNsYXNzIEludGVnZXJOdW1iZXIKewogICBzdGQ6OnZlY3RvcjxjaGFyPiBtX2RpZ2l0czsKICAgcHVibGljOgogICAgICAgICAgSW50ZWdlck51bWJlcigpCiAgICAgICAgICB7CiAgICAgICAgICAgICBtX2RpZ2l0cy5wdXNoX2JhY2soMCk7CiAgICAgICAgICB9CiAgICAgICAgICBJbnRlZ2VyTnVtYmVyKGNvbnN0IHN0ZDo6c3RyaW5nICZudW1iZXIpCiAgICAgICAgICB7CiAgICAgICAgICAgICAgIHN0ZDo6dHJhbnNmb3JtKG51bWJlci5iZWdpbigpLG51bWJlci5lbmQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpiYWNrX2luc2VydGVyKG1fZGlnaXRzKSwgY2hhcjJkaWdpdCgpKTsKICAgICAgICAgIH0KICAgICAgICAgIEludGVnZXJOdW1iZXIgb3BlcmF0b3IrKGNvbnN0IEludGVnZXJOdW1iZXIgJiBudW1iZXIpCiAgICAgICAgICB7CiAgICAgICAgICAgICAgIEludGVnZXJOdW1iZXIgcmVzdWx0KG51bWJlcik7CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgIAogICAgICAgICAgfQogICAgICAgICAgZnJpZW5kIHN0ZDo6b3N0cmVhbSAmIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZvdXQsIGNvbnN0IEludGVnZXJOdW1iZXIgJm51bWJlcik7Cn07CgpzdGQ6Om9zdHJlYW0gJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSAmb3V0LCBjb25zdCBJbnRlZ2VyTnVtYmVyICZudW1iZXIpCnsKICAgc3RkOjpjb3B5KG51bWJlci5tX2RpZ2l0cy5iZWdpbigpLCBudW1iZXIubV9kaWdpdHMuZW5kKCksc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludD4ob3V0KSk7CiAgIHJldHVybiBvdXQ7Cn0KCmludCBtYWluKCkgCnsKICAgICAgICBJbnRlZ2VyTnVtYmVyIEE7CglJbnRlZ2VyTnVtYmVyIEIoIjEyMzQ1Njc4OTU0Njg4NzA5NzY0MzQ3ODkwIik7CiAgICAgICAgc3RkOjpjb3V0IDw8IEEgPDwgc3RkOjplbmRsOwogICAgICAgIHN0ZDo6Y291dCA8PCBCIDw8IHN0ZDo6ZW5kbDsKICAgICAgICBBID0gQSArIEI7CiAgICAgICAgc3RkOjpjb3V0IDw8IEEgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=
-
upload with new input
-
result: Success time: 0s memory: 2860 kB returned value: 0
0 12345678954688709764347890 12345678954688709764347890


