• 高精度减法


     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<cstring>
     6 using namespace std;
     7 int main()
     8 {
     9     //高精度减法,被减数必须比减数大
    10     //同时需要处理借位
    11     int a[100000],b[100000],c[100000],lena,lenb,lenc,i;
    12     char n[100000],n1[100000],n2[100000];
    13     memset(a,0,sizeof(a));
    14     memset(b,0,sizeof(b));
    15     memset(c,0,sizeof(c));
    16     printf("Input minuend:"); gets(n1);//输入被减数 
    17     printf("Input subtrahend:"); gets(n2);//输入减数
    18     if(strlen(n1) < strlen(n2) ||strlen(n1) == strlen(n2) && strcmp(n1,n2) < 0)//当被减数小于减数
    19     {
    20         strcpy(n,n1);
    21         strcpy(n1,n2);
    22         strcpy(n2,n);
    23         printf("-");//交换减数与被减数,然后填上负号 
    24     }
    25     lena = strlen(n1);
    26     lenb = strlen(n2);
    27     for(i = 0;i <= lena - 1;i++) a[lena - i] = int(n1[i] - '0');
    28     for(i = 0;i <= lenb - 1;i++) b[lenb - i] = int(n2[i] - '0');
    29     i = 1;
    30     while(i <= lena||i <= lenb)
    31     {
    32         if(a[i] < b[i])
    33         {
    34             a[i] += 10;
    35             a[i + 1]--;//借位 
    36         }
    37         c[i] = a[i] - b[i];//对应位相减 
    38         i++;
    39     }
    40     lenc = i;
    41     while((c[lenc] == 0) && (lenc > 1))lenc--;//最高位的0不输出     
    42     for(i = lenc;i >= 1;i--) printf("%d",c[i]);
    43     return 0;
    44 }

    end。

  • 相关阅读:
    Python ---chart
    python ---Pandas时间序列:生成指定范围的日期
    python 生成图表
    top 学习
    linux awk命令详解
    /proc 目录详细说明
    ps 和 top 的cpu的区别
    linux 监控性能学习笔记(1)
    转如何用九条命令在一分钟内检查Linux服务器性能?
    Linux系统排查——CPU负载篇
  • 原文地址:https://www.cnblogs.com/peppa/p/8495315.html
Copyright © 2020-2023  润新知