【题解】幸运数字
2023-05-15 15:05:38
发布于:浙江
57阅读
0回复
0点赞
解题思路详见代码里的注释
#include<bits/stdc++.h>
using namespace std;
int main(){
//输入测试用例数量
int t;
cin >> t;
while(t--){
int l, r;
cin >> l >> r;
//luckymun为飞船的幸运数字,ans为最幸运的飞船编号,最后输出ans
int luckymun = 0, flag =1, ans;
//如果L和R相等,则说明只有一个编号,输出这个编号就行
if (l==r) ans = l;
//从l开始,到r一个一个处理飞船编号
for(int i = l; i <= r; i++){
int m = i, Max = 0, Min = 9;
//对该飞船编号取余,获得编号中的每一位数字,并比较数字的大小,获得编号中最大和最小值
while(m!=0){
Max = max(Max, m%10);
Min = min(Min, m%10);
m /= 10;
}
//本编号的幸运数字>上一个编号的幸运数字,本编号成为最幸运的编号
if(Max - Min > luckymun) {luckymun = Max - Min;ans = i;}
//幸运数字为9时,就不需要再做后面的对比了,直接输出本轮飞船编号
if(luckymun == 9){cout<< i << endl;flag=0;break;}
}
//如果循环内已经输出过一次答案了,就不再输出第二次
if(flag != 0){
cout << ans << endl;
}
}
return 0;
}
这里空空如也
有帮助,赞一个