C语言超长整数乘法计算问题

2024-12-29 08:29:45
推荐回答(2个)
回答1:

我想里面的
c[i+j] = a[i] * b[j] + c[i+j];
c[i+j+1] = c[i+j] / 10 + c[i+j+1];
c[i+j] = c[i+j] % 10;
应该是关于进位的,大于10 就要向前进一位
c[i+j] = a[i] * b[j] + c[i+j]; 比如这个等于 36 那么 把6 留下 3 进到 前一位去 ;
c[i+j+1] = c[i+j] / 10 + c[i+j+1]; 这句是向前进 十位 的 ;
c[i+j] = c[i+j] % 10; 这句就是 留下 各位 ;
这个不是跟乘法的思想是一样的嘛 每一位都要相乘嘛!
就行 55 * 55
不是需要 乘 4 遍嘛!

回答2:

两层循环就是依次用一个数组的每一位依次去乘另外一个数组的每一位,然后把乘的结果写到结果的相应位,超过10的要写到上一位