VSC++=》 雷达安装问题

这个代码只是固定位置1个雷达安装位置所求的,若要动态确定雷达安装位置计算,要在此代码基础上修改即可。这个题目可用一维数组处理,把X作为数组下标判断当Y大与数组值时替换即可表示X和Y,这样就不用创建类数组也不用排序。

void 雷达安装问题()
{//缘由https://bbs.csdn.net/topics/396522250
	int xy[47]{}, j = 0, x = 0, y = 0, N = 0, D = 0, LD = 1;
	cin >> N >> D; j = N;
	while (j)cin >> x >> y, (xy[x] < y ? xy[x] = y : 0), --j;
	x = 0; y = D;//雷达Y=0就不做减法了X=D雷达半径。圆的点坐标Y对应最大等于半径,若小等于半径都在圆内,因此判断Y小等于半径可断其在圆内。
	while (++x <= N)if (xy[x])if (pow(xy[x], 2) + pow((x - y), 2)>pow(D, 2))  ++LD; else; else;
	cout << LD;//动态设置雷达位置的算法:先以D为位置求D位置前面是否满足,若不满足这往前移,如是推求到1止;往后移动D位置,求法如前,直至N。
}

由于数据4 3超过3 0雷达,6 2也超过,因此输出为3,修改一下数据就能体现为2。

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值