zoukankan      html  css  js  c++  java
  • A-B 练习【大数减法举例】

    A-B

    Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

    题目描述

    题目链接http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2102

    每读入两个整数,输出其差。

    输入

    输入数据含有不超过50个的整数对,每个整数和每对整数的运算结果都不会超过±2^31。

    输出

    对于每次读入的一对整数,输出前者减去后者的差。每个结果应以回车结束。

    示例输入

    1 3
    5 7

    示例输出

    -2
    -2

    提示

         很明显,这是一道在整型范围内的减法运算,但是网上也找不到有关大数减法的题目,用这道题目抛砖引玉,也勉强凑合~

    代码:

     1 #include<iostream>
     2 #include<string.h>
     3 #include<stdlib.h>
     4 using namespace std;
     5 int main()
     6 {
     7     char f1[110],g1[110];
     8     while(cin>>f1>>g1)
     9     {
    10     int f[110]={0},g[110]={0};
    11     int i,j;
    12     int t=strlen(f1),s=strlen(g1);
    13     for(i=t-1,j=0;i>=0;i--,j++)
    14         f[j]=f1[i]-'0';
    15     for(i=s-1,j=0;i>=0;i--,j++)
    16         g[j]=g1[i]-'0';
    17     int sum[110]={0},flag=0;
    18     int up=0;
    19     if((t==s&&strcmp(f1,g1)>=0)||t>s)//此处的if else 是大数减法的核心代码
    20     {
    21         for(i=0;i<=105;i++)
    22         {
    23            if(f[i]>=g[i])
    24              sum[i]=f[i]-g[i];
    25            else 
    26            {
    27                sum[i]=f[i]-g[i]+10;
    28                f[i+1]--;
    29            }
    30         }
    31     }
    32     else 
    33     {
    34         flag=1;
    35         for(i=0;i<=105;i++)
    36         {
    37            if(g[i]>=f[i])
    38              sum[i]=g[i]-f[i];
    39            else 
    40            {
    41                sum[i]=g[i]-f[i]+10;
    42                g[i+1]--;
    43            }
    44         }
    45     }
    46     if(strcmp(f1,g1)==0)
    47     {
    48         cout<<"0"<<endl;
    49         continue;
    50     }
    51     if(flag==1)
    52         cout<<"-";
    53     for(i=105;i>=0;i--)
    54         if(sum[i]!=0)
    55         {
    56             while(i>=0)
    57             {
    58                 cout<<sum[i];
    59                 i--;
    60             }
    61             break;
    62         }
    63         cout<<endl;
    64     }
    65         return 0;
    66 }
    View Code
  • 相关阅读:
    ImageCapOnWeb控件使用说明
    网页摄像头拍照
    js调用ocx控件
    sql中 in 、not in 、exists、not exists 用法和差别
    oracle远程登录解决办法
    oracle导入导出,包括表,表结构,方案,数据库
    字典树
    线段树
    Til the Cows Come Home
    Forgger
  • 原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/3393195.html
Copyright © 2011-2022 走看看