题目描述
老师给了 Perica 两个数 a, b,Perica 将他们抄在了笔记本上,并要算出他们的和。
在抄写过程中,Perica 可能会将 a, b 中的数字 6 错抄成数字 5,也可能将数字 5 错抄成数字 6,当然也可能不抄错。
给定 a, b,请求出 Perica 算出的和最小和最大分别是多少。
输入格式
输入只有一行两个整数,分别表示 a 和 b。
输出格式
输出一行两个整数,表示最小可能的和以及最大可能的和。
输入输出样例
输入 #1复制
11 25
输出 #1复制
36 37
输入 #2复制
1430 4862
输出 #2复制
6282 6292
输入 #3复制
16796 58786
输出 #3复制
74580 85582
#include <bits/stdc++.h>
using namespace std;
int a,b,maxAns,minAns,w=1;
int main(int argc, char** argv) {
cin>>a>>b;
maxAns=minAns=a+b;
while(a!=0){
//取出当前位上的数字
int n=a%10;
//这一位上的数字是5
if(n==5){
//将较大的答案加上这一位
maxAns+=w;
}
//这一位上的数字是6
if(n==6){
//将较小的答案减去这一位
minAns-=w;
}
//换位
a/=10;
w*=10;
}
w=1;
while(b!=0){
int n=b%10;
if(n==5){
maxAns+=w;
}
if(n==6){
minAns-=w;
}
b/=10;
w*=10;
}
cout<<minAns<<" "<<maxAns<<endl;
return 0;
}
求赞!谢谢