您的位置:首页 > 其它

20200314之新型导弹 (枚举 填空)

2020-04-07 12:22 966 查看

J国开发了一个新型导弹,它可以击中距离发射点 2^a * 3^b * 5^c * 7^d 千米的目标。

也就是说,假设目标与发射点的距离为dis,如果能找到abcd使得上述式子等于dis,那么导弹就可以击中,若无法找到,则不能击中。

发射点与敌国的最小距离是123456789千米,这个距离之外全部是敌国领土,请问可以攻击到的敌国领土上的最近位置是多少?

输出:
一个整数

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll mi=1e10,dis=123456789,mx=1e9;
ll pa=1;
for(int a=0;a<=40;a++){    //范围可以大体计算一下来控制
ll pb=1;
for(int b=0;b<=30;b++){
ll pc=1;
for(int c=0;c<=18;c++){
ll pd=1;
for(int d=0;d<=18;d++){
ll x=pa*pb*pc*pd;
if(x<=mx&&x>=dis)
mi=min(mi,x);
else if(x>mx)
break;
pd*=7;
}
pc*=5;
}
pb*=3;
}
pa*=2;
}
printf("%lld\n",mi);
return 0;
}

我很想暴力,可又控制不好暴力留的范围,真真是许多大数扑面而来,我的天!如此罢了。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
是IMI呀 发布了38 篇原创文章 · 获赞 0 · 访问量 710 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: