// 1234567898765432123456789 * 9876543212345678987654321
// = 12193263200731596000609652202408166072245112635269
// = 12193263200731596000609652202408166072245112635269
#include <stdio.h> #include <string.h> void main() { int a[7]={6789,2345,4321,8765,6789,2345,1}; // reverse order, 4 digits each int b[7]={4321,8765,6789,2345,4321,8765,9}; int c[14]; // 14 (7位數*7位數得14位數) int carry, quotient; memset(c,0,sizeof(c)); for (int i=0;i<7;i++) { carry=0; for (int j=0;j<7;j++) { quotient=c[i+j]+b[j]*a[i]+carry; carry=quotient/10000; // cell size 0 - 9999 c[i+j]=quotient%10000; // 不一定用 10000 } if (carry>0) c[i+j]+=carry; } for (int k=13;k>=0;k--) printf("%04d",c[k]); } |