#include <vector> #include <string> #include <algorithm> using namespace std; string onpaper_multiplies(const string& sa, const string& sb) { int digits = (int)(sa.size() + sb.size()); vector<int> a(sa.size(),0); vector<int> b(sb.size(),0); vector<int> c(digits,0); // 下位の桁から順にセット auto char2int = [](char ch) { return ch - '0';}; transform(sa.rbegin(), sa.rend(), a.begin(), char2int); transform(sb.r
![<numeric>がらみの数値演算に触発されて、「巨大整数のかけ算」を行う方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/674a16b455983a50f9921163cf2b991c4ca888f5/height=288;version=1;width=512/https%3A%2F%2Fcodezine.jp%2Fstatic%2Fimages%2Farticle%2F8813%2F8813_t.png)