• 2016/7/6 高精准计算器-减(神·高精准)


    咳咳,我于心不忍,so,我又来写了。。。。。。

    源码:

    #include<stdio.h>
    #include<string.h>
    char s1[1000];
    int a[1000]={0},b[1000]={0},c[1000]={0};
    int main()
    {
    int i,j,z,l1,l2,l,o;
    freopen("hp-.in","r",stdin);
    freopen("hp-.out","w",stdout);
    scanf("%s",s1); 
    l1=strlen(s1);
    for(i=0;i<=l1-1;i++)       //把s1(被减数)转换成数字,并倒序存入a数组
    a[l1-1-i]=s1[i]-'0';
    scanf("%s",s1);
    l2=strlen(s1);
    for(i=0;i<=l2-1;i++)        //把s1(减数)转换成数字,并倒序存入b数组
    b[l2-1-i]=s1[i]-'0';

    if(l1==l2){
    for(j=l1;j>=0;j--)
    {
    if(a[j]>b[j])                //a大
    {
    o=0;
    break;
    }
    if(b[j]>a[j])                //b大
    {
    o=1;
    break;
    }
    }
    }
    if(l1>l2||o==0)             //a大时
    {
    l=l1;
    for(i=0;i<l;i++)
    {
    if(a[i]<b[i])
    {
    a[i]=a[i]+10;
    a[i+1]-=1;
    }
    c[i]=a[i]-b[i];
    }
    while(l>1&&c[l-1]==0) l--;        //舍去高位中无用的0
    for(i=l-1;i>=0;i--)             //输出
    {
    printf("%d",c[i]);
    }
    }
    else
    {
    printf("-");
    l=l2;
    for(i=0;i<l;i++)
    {
    if(a[i]>b[i])
    {
    b[i]=b[i]+10;
    b[i+1]-=1;
    }
    c[i]=b[i]-a[i];
    }
    while(l>1&&c[l-1]==0) l--;         //舍去高位中无用的0
    for(i=l-1;i>=0;i--)              //输出
    {
    printf("%d",c[i]);
    }
    }

    return 0;
    }

               来自小组:

             成都七中高新校区OI2015信息竞赛       冰杖

    http://www.cnblogs.com/chentao1c/             ——冰杖

     

  • 相关阅读:
    深入理解乐观锁与悲观锁
    mysql5.7 安装常见问题
    nginx 前后分离,地址重写,url匹配中遇到的问题
    nginx rewrite
    Nginx location 配置
    Nginx高级应用之Location Url 配置
    Zookeeper的功能以及工作原理
    [PY3]——IO——文件目录操作
    [PY3]——pwd | grp 模块
    [PY3]——时间处理——datetime | calendar
  • 原文地址:https://www.cnblogs.com/wuweihehe/p/5648077.html
Copyright © 2020-2023  润新知