题目描述
小明的爸爸给了出了一个问题。爸爸给他两个整数,然后问它们加起来是多少?
小明的计算不会出错,但是有时他会把数抄错,但是他只会把 5 抄成 6,或者把 6 抄成 5。
现在给出两个数A,B ,计算小明可能得出的最大结果和最小结果。
输出格式
单独的一行,包含两个整数,表示可能的最小结果和最大结果。
样例
样例输入
11 25
样例输出
36 37
样例解释
可能的最小结果是小明没有抄错数,因此计算得 11+25=36。
可能的最大结果是小明把 25 抄成了 26,因此计算得 11+26=37。
先判断是否出现5或者6,然后分别计算所有6都是5的情况,再计算所有5都是6的情况
#include <iostream>
using namespace std;
void getminmax(int a,int *min,int *max)
{
int bs = 1;
int d = a;
int r = 0;
*min = 0;
*max = 0;
while(d>0)
{
r = d%10;
if(r==5 || r==6)
{
*min += 5*bs;
*max += 6*bs;
}
else
{
*min += r*bs;
*max += r*bs;
}
bs*=10;
d = d/10;
}
}
int main()
{
int a,b,min1,min2,max1,max2;
cin>>a>>b;
getminmax(a,&min1,&max1);
getminmax(b,&min2,&max2);
cout<<min1+min2<<" "<<max1+max2;
return 0;
}