大数除法运算

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 08:23   17   0

比较简单的字符串操作。
下面函数是输出a除以b运算得到商和余数。

代码实现:

void division(char *a, int b)
{
 int q, r, len;

 len = strlen(a);
 for (int i = 0; i < len; i++)a[i] -= '0';
 if (len == 1)
 {
  r = a[0] % b;
  printf("%d %d", a[0] / b, r);
 }
 else
 {
  for (int i = 0; i < len; i++)
  {
   if(i!=len-1)
    if (a[i] / b != 0)
    {
     a[i + 1] += 10 * (a[i] % b);
     a[i] /= b;
    }
    else
    {
     a[i + 1] += 10 * a[i];
     a[i] = 0;
    }
   else if (i == len - 1)
   {
    r = a[i] % b;
    a[i] /= b;
   }
  }
  for (int i = 0; i < len; i++)
   if (i == 0 && a[i] != 0)printf("%d", a[i]);
   else if (i != 0)printf("%d", a[i]);
  printf(" %d", r);
 }

 return 0;
}
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP