zoukankan      html  css  js  c++  java
  • 高精度减法

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #include<string>
    using namespace std;
    int main()
    {
    int a[201] = {0}, b[201] = {0};
    int i, la, lb;
    char al[201], bl[201];
    bool flag = 1;
    gets(al);
    la = strlen(al);
    gets(bl);
    lb = strlen(bl);
    if(la < lb)
    {
    flag = 0;
    swap(al,bl);
    }
    // 若a比b位数少,则交换并标记
    if(la == lb)
    {
    for(i = 1;i <= la;i++)
    {
    if(al[i] < bl[i])
    {
    swap(al,bl);
    flag = 0;
    break;
    }
    }
    }
    // 若a和b位数一样,则从最高位开始比较a和b同位数字的大小
    for(i = 0;i < la;i++) a[i] = al[la-i-1] - '0';
    for(i = 0;i < lb;i++) b[i] = bl[lb-i-1] - '0';
    for(i = 0;i < la;i++)
    {
    if(a[i] < b[i])
    {
    a[i+1]--;
    a[i] += 10;
    }
    a[i] = a[i] - b[i];
    }
    // 减法与借位
    while(!a[la-1])
    {
    la--;
    if(!la)
    {
    printf("0");
    break;
    }
    }
    // 删除前导0
    if(flag = 0) printf("-");
    for(i = la - 1;i >= 0;i--)
    {
    printf("%d",a[i]);
    }
    return 0;
    }

  • 相关阅读:
    JAVA程序的运行机制
    DOS命令
    垃圾回收
    eureka的简单使用
    各微服务之间的调用
    各层调用关系与注解使用
    bean管理xml方式
    Lombok介绍和使用
    java特性 JDK JRE JVM
    git克隆 文件夹
  • 原文地址:https://www.cnblogs.com/thx666/p/8321018.html
Copyright © 2011-2022 走看看