一道C语言算法题

用C实现一个函数,该函数完成两个100字节长的整数a、b的乘法,并将结果保存到c。

unsigned char * multi(unsigned char *a, unsigned char *b, unsigned char *c){

}
阅读 3.3k
2 个回答

搜下大数乘法。

新手上路,请多包涵

用人来模拟机器算。
我的话会采用一个左移, 一个右移来算乘法

核心的就是下边的:

a * b =

if b == 0 , return 0
if b ends with 1, return a (b-1 + 1) = a + a (b -1) , 这里减1就是把最末位改成0,会增加一个大数的加, 然后里面有递归
else return (a 2) (b / 2) 这是用移位来计算,左移就是在串最后加个0, 右移就是去掉最后一个0, 然后递归。

以上纯是我自己的想法, 没作过编码哈

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进