题目描述
给定 a , b a,b a,b两个数,使 a a a变成 b b b,每次操作可以让 a a a加或减一个 1 … 10 1…10 1…10的数
解题思路
使用贪心策略,优先加或减 10 10 10,当差值小于 10 10 10时,即可再操作一次使 a a a变成 b b b
所以要特判 a , b a,b a,b相等的情况和 a , b a,b a,b差小 于 10 于10 于10的情况
1.1如果两数之差为 0 0 0,直接输出0
1.2如果两数之差 ≤ 10 \le 10 ≤10,可以一次操作就让 a a a变成 b b b,所以输出1
2.剩下就是 > 10 >10 >10的情况,直接贪心除于 10 10 10就可以求出最少次数,然后看个位来确定是否加 1 1 1
整体很简单,注意if的情况和个位数的处理即可
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int a,b;
cin>>a>>b;
int cha=abs(b-a);
int ans=0;
if(cha==0){
cout<<0<<endl;
continue;
}
if(cha<=10){
cout<<1<<endl;
continue;
}
ans=cha/10;
cha%=10;
if(cha>0)
ans++;
cout<<ans<<endl;
}
return 0;
}