热搜:前端 nest neovim nvim

Lucky Numbers CodeForces - 1808A

lxf2023-06-01 01:38:26

Lucky Numbers CodeForces - 1808A

Lucky Numbers CodeForces - 1808A

 题意:一个数的幸运值计算规则是用里面最大的数字-最小的数字所得值 给出一个范围,求这个范围里幸运值最大的是哪个数

解:

这道题相对来说就很简单了,注意数值限制范围在1道1e6,虽然这道题确实暴力就能做出来,但也需要进行剪枝避免浪费时间多余的操作。

我们把计算一个数的幸运值这个步骤分离出来写一个函数

思路也很简单,就是把该数字拆成一位一位过程中找到最大值和最小值,返回它们之差

Lucky Numbers CodeForces - 1808A

我们不能进行单纯的遍历计算比较,会时间超限的

可以发现,每遍历100个数必然会出现一个存在9和0的组合的数,而两个个位数相减最大结果就是9,所以遍历时计算出幸运值9时候就无需继续遍历了。

所以:

#include<bits/stdc++.h>
using namespace std;
int t,l,r,lucky,me,cur;
int luck(int x)
{
    int u,maxx=-1,minn=10,ans;
    while(x!=0)
    {
        u=x%10;
        x=x/10;
        maxx=max(maxx,u);
        minn=min(minn,u);
    }
    return maxx-minn;
}
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>l>>r;
        lucky=-1;
        for(int i=l; i<=r; i++)
        {
            cur=luck(i);
            if(cur>=lucky)
            {
                lucky=cur;
                me=i;
                if(lucky == 9)break;
            }
        }
        cout<<me<<endl;
    }
    return 0;
}
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!