专栏文章

题解:P12235 [蓝桥杯 2023 国 Java A] 躲炮弹

P12235题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mioga4ka
此快照首次捕获于
2025/12/02 18:43
3 个月前
此快照最后确认于
2025/12/02 18:43
3 个月前
查看原文
提供一个暴力的做法。

题目分析

我们可以直接枚举答案,然后检验枚举出来的答案是否符合条件。

该如何检验答案是否符合条件

很明显,我们直接枚举答案的因数。假如该因数在题目给定 llrr 区间范围内,证明不符合条件,直接跳过。
假若找到了答案,直接输出,终止程序。

AC 代码

CPP
#include<bits/stdc++.h>
using namespace std;
int n,l,r;
bool check(int x)//判断是否合法
{
    if(x==1) return true;
    for(int i=1;i*i<=x;++i)
    {
        if(x%i==0)
        {
            if(i>=l&&i<=r)return false;
            int t=x/i;
            if(t>=l&&t<=r)return false;
        }
    }
    return true;
}
signed main()
{
    cin>>n>>l>>r;
    if(check(n))
    {
        putchar('0');
        return 0;
    }
    for(int i=1;;++i)//枚举答案
    {
        bool left=false;
        if(n-i>=0) left=check(n-i);
        bool right=check(n+i);
        if(left||right)
        {
            cout<<i;
            return 0;
        }
    }
    return 0;
}
    

评论

0 条评论,欢迎与作者交流。

正在加载评论...