首页 > 试题广场 >

题目标题: A-B

[问答题]

题目标题:

A-B

题目描述:

计算A-B的值

输入描述:

输入两个整数 a,b

输出描述:

输出a-b的结果

样式输入:

7 4

样式输出:

3

#include <iostream>
#include <cstdio> 
#include <cstdlib> 
#include <stack>
#include<vector>
using namespace std;
void subtract(vector<char>a,vector<char>b){
    int temp=0;
    if(a.size()<b.size()){
        cout<<"-";
        a.swap(b);
    }
    vector<char>::iterator i=a.end()-1;
    vector<char>::iterator j=b.end()-1;
    stack<int>c;
    while(i>=a.begin() && j>=b.begin()){
        if(((*i)+temp)>=(*j)){
            c.push((*i)+temp-(*j));
            temp=0;
        }
        else{
            c.push((*i)+10-(*j)+temp);
            temp=-1;
        }
        i--;a.pop_back();
        j--;b.pop_back();
    }
    while(!a.empty()){
        if(((*i)+temp)>=0){
            c.push((*i)-'0'+temp);
            temp=0;
        }
        else{
            c.push((*i)+10-'0'+temp);
        }
        i--;a.pop_back();
    }
    while(!b.empty()){
            if(((*j)+temp)>=0){
            c.push((*j)-'0'+temp);
            temp=0;
        }
        else{
            c.push((*j)+10-'0'+temp);
        }
        j--;b.pop_back();

    }
    while(!c.empty()){
        cout<<c.top();
        c.pop();
    }
}
int main(){

    vector<char>a;
    vector<char>b;
    char e;
    char f;
    while(scanf("%c",&e)){
            if(e!=' ')
                a.push_back(e);
            if(e==' ')
                break;
        }
    while(scanf("%c",&f)){
            if(f!='\n')
                b.push_back(f);
            if(f=='\n')
                break;
    }
    subtract(a,b);
}
利用两个容器以字符动态输入,从两个容器末尾往前通过考虑temp借位依次减并实时输出
发表于 2022-02-16 16:33:04 回复(0)

include<stdio.h>

void main()
{int a,b,t;
scanf(%d,%d,&a,&b);
t=a-b;
printf(%d,t);}

发表于 2018-05-26 23:24:57 回复(0)

#include<stdio.h>
int main()
{
int a,b;
while (scanf("%d%d",&a,&b)!=EOF)

printf ("%d",a-b);
return 0;
}

发表于 2017-05-17 04:15:32 回复(0)