我在使用递归将长正数123241536287914341
与 C 中的常数正数(如2
, 3
, ... )相乘时遇到问题。9
我了解如何将长正数乘以10
,100
或等等,因为您只需要0
在末尾添加适当数量的 s 即可。当使用两个函数乘以2
, 3
, 4
.... 时,我将如何做到这一点?
即一个函数,如
char* multi(char *num1, char d)
以及递归辅助函数,例如
void multi_helper(char *a, char *r, char b, int len, int carry)
这是我乘以 的代码10
,但格式不同:
char *getmem(int len) {
char *ret;
ret = malloc(len);
if (NULL == ret) {
printf("memory allocation failed!\n");
exit (0);
}
else
return ret;
}
char *shiftleft(char *a) {
char *l = getmem(strlen(a)+2);
strncpy(l,a,strlen(a));
l[strlen(a)] = '0';
l[strlen(a)+1] = 0;
return l;
}