一段任意长数相乘函数

oosky2004 2006-05-24 11:22:27
欢迎来拍板。修正。谢谢。

char* Multiply(char *a, char *b, char **ret)
{
int length_a = strlen(a);
int length_b = strlen(b);
int temp = 0;
int i = 0;
int j = 0;
int index = length_a + length_b;
char *sum = new char[index];

memset(sum, '0', index);

for (j= length_b-1; j >= 0; j--)
{
for (i= length_a-1,index = length_a + j; i >= 0; i--,index--)
{
int atemp = a[i] - '0';
int btemp = b[j] - '0';
temp = atemp * btemp + (sum[index]-'0');
if (temp >= 10)
{
sum[index-1] = ((temp/10) +'0') + (sum[index-1] -'0');
sum[index] = (temp%10) +'0';
}
else
{
sum[index] = temp + '0';
}
}
}
//for test result
for (index = 1; index<= length_a+length_b; index++)
{
cout<<sum[index];
}
cout<<endl;
return *ret = sum;
}
...全文
127 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazy_lazy_pig 2006-05-24
  • 打赏
  • 举报
回复
搞这么复杂干嘛啊?做作业啊?如果是实际要用的,不如去下载个gmp库,比这功能强多了,是任意精度的数值计算

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧