• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
水晶閣
博客园    首页    新随笔    联系   管理    订阅  订阅

高精度减法,在做小减大时可花了我不少时间!

减法:

#include<stdio.h>

#include<string.h>

int main()

{

      char s1[1000];

      int a[1000]={0},b[1000]={0},c[1000]={0},l1=0,l2=0,l=0,i,x;

      scanf("%s",s1);

      l1=strlen(s1);

      for(i=0;i<=l1-1;i++)

      {

           a[l1-1-i]=s1[i]-'0';

      }

      scanf("%s",s1);

      l2=strlen(s1);

      for(i=0;i<=l2-1;i++)

      {

           b[l2-1-i]=s1[i]-'0';

      }

      if(l1>l2)

        l=l1;

      else

        l=l2;

      for(i=0;i<=l-1;i++)

      {

 

           if(a[i]<b[i])

           {

                 c[i]=a[i]+10-b[i];

                 c[i+1]=a[i+1]-1;

           }

           else

               c[i]=a[i]-b[i];

    }

    for(i=0;i<=l-1;i++)

    {

          if(a[i]<b[i])

          {

             x=1;

           }

      }

    if(l1<l2||x==1)

    {

          printf("-");

          for(i=0;i<=l-1;i++)

      {

 

           if(b[i]<a[i])

           {

                 c[i]=b[i]+10-a[i];

                 c[i+1]=b[i+1]-1;

           }

           else

               c[i]=b[i]-a[i];

    }

      }

    for(i=l-1;i>=0;i--)

    {

          if(c[i]==0)

            l--;

          else

             break; 

      }

      for(i=l-1;i>=0;i--)

          printf("%d",c[i]);

      return 0;

}

posted @ 2016-07-06 19:07  水晶閣  阅读(167)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3