zoukankan      html  css  js  c++  java
  • noi 大整数减法

    #include<stdio.h>
    #include<string.h>
    char a[205];
    char b[205];
    int main()
    {
        int a1,b1,i,n;
        while(scanf("%s %s",a,b)!=EOF)
        {
            int c[205]= {0},d[205]= {0};
            a1=strlen(a);///字符输入两个大整数
            b1=strlen(b);
            for(i=1; i<=a1; i++)///将字符串的每一位保存在数组中,注意这里逆过来了,便于计算时对齐
            {
                c[i]=a[a1-i]-'0';
            }
            for(i=1; i<=b1; i++)
            {
                d[i]=b[b1-i]-'0';
            }
            if(a1>b1)///将减的次数要取大的,多的课当做减0
                n=a1;
            else
                n=b1;
            for(i=1; i<=n; i++)///前面已经反转了所以从前面开始计算
            {
                c[i]=c[i]-d[i];
                if(c[i]<0)///如果减数小于被减数,高位减一,模仿竖式减法
                {
                    c[i+1]-=1;
                    c[i]+=10;
                }
            }
            int x=0;
            ///去除强导0,即第一个非0数字前的0,
            ///注意最后一位不要去应为可能出现得数为0的情况
            for(i=n; i>=2; i--)
            {
                if(c[i]==0)
                {
                    x++;
                }
                else
                    break;
            }
            for(i=n-x; i>=1; i--)
            {
                printf("%d",c[i]);
            }
            printf("
    ");
    
        }
    }

    此题用字符串读入就行,在转化成数组,模拟竖式减法就行,主要是注意答案为0的情况

    原题链接:点我转移

  • 相关阅读:
    seajs快速了解
    lazyload.js详解
    iScroll-js—“smooth scrolling for the web”
    Backbone学习笔记一Backbone中的MVC
    JMH基准测试框架
    idea 下运行安卓项目
    安卓
    C++
    看完
    四叉树的js实现
  • 原文地址:https://www.cnblogs.com/tp25959/p/10236066.html
Copyright © 2011-2022 走看看