本文共 674 字,大约阅读时间需要 2 分钟。
#include#include using namespace std;void bigmul(int x, int y, int r[]){ int base = 10000; int x2 = x / base; int x1 = x % base; int y2 = y / base; int y1 = y % base; int m1 = x1 * y1; int m2 = x2 * y1; int m3 = x1 * y2; int m4 = x2 * y2; r[3] = m1 % base; r[2] = m1 / base + m3 % base + m2 % base; r[1] = m2/base+m3/base+m4%base; // 填空 r[0] = m4 / base; r[1] = r[1] + r[2]/base; // 填空//r[2]可能有进位到r[1]块的 r[2] = r[2] % base; r[0] = r[0] + r[1] / base;//r[1]可能有进位到r[0]块的 r[1] = r[1] % base;}int main(int argc, char* argv[]){ int x[] = {0,0,0,0}; //87654321 12345678 bigmul(214,25, x); printf("%d %d %d %d\n", x[0],x[1],x[2],x[3]); return 0;}