问题描述:求很大的数的乘积,比如:
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111*1000
一、最初
思路:手算复现,整体采用先求每位的积,再逐位取余进位。考虑到下标容易混乱,就采用镜像方式求值(这一点在改进思路中已纠正)。创建两个较大的数组a、b;通过输入字符的方式输入整数,并转换为数字存入对应数组中,并将输入字符个数返回,由于乘积最大位数为两个整数位数之和,创建结果数组c;(将a、b数组逆置);逐位对应求乘积,并将相应位上积和存入结果数组"c[i+j]+=a[i]*b[j];";结果数组从头到jio取余进位;将结果数组c逆置并输出,由于考虑到没有进位会导致最高位为0,故"i==0&&c[i]==0"时忽略输出;
以987*34为例: