我在使用递归将长正数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;
}