C语言 高精度除法

来源:互联网 发布:韩国代购淘宝店推荐 编辑:程序博客网 时间:2024/05/18 00:08
#include <stdio.h>  #include <string.h>    int len1,len2;  char s1[905],s2[905];  int re[905];    void sub()  {      int i=0,j;      while(1)      {          if(s1[i]=='0')  i++;          else          {              j=i;              break;          }      }      for(;i<len2;i++)          s1[i]=s1[i]-s2[i]+'0';      for(i=len2-1;i>j;i--)            //低位开始检测是否小于0          if(s1[i]<'0')          {              s1[i]+=10;              s1[i-1]--;          }  }    int main()  {      int i,p;      scanf("%s%s",s1,s2);       len1=strlen(s1);      len2=strlen(s2);      if(len1<len2 || (len1==len2 && strncmp(s1,s2,len2)<0))   //如果a<b,直接输出0          printf("0\n");       p=0;      while(1)      {          re[p]=0;          while(strncmp(s1,s2,len2)>=0)      //一直进行减法,直到不能减为止          {              sub();              re[p]++;          }          p++;          if(len1==len2)  break;          for(i=len2-1;i>=0;i--)             //在s2前面补0,以便进行减法运算              s2[i+1]=s2[i];           s2[0]='0';          len2++;          s2[len2]='\0';      }      i=0;      while(1)      {          if(re[i]==0)    i++;          else            break;      }      for(;i<p;i++)          printf("%d",re[i]);      return 0;  }   

—————————————————————————————————

本文原创自Sliencecsdn技术博客。

本博客所有原创文章请以链接形式注明出处。

欢迎关注本技术博客,本博客的文章会不定期更新。


大多数人想要改造这个世界,但却罕有人想改造自己。

世上没有绝望的处境,只有对处境绝望的人。

                                              ————By slience

—————————————————————————————————


0 0
原创粉丝点击