“二十一天好习惯”第一期-11

前言:

今天正式进入蓝桥杯备赛环节,每天可能会分享几个蓝桥杯历年真题来记录,话不多说,直接看题

题目描述:

一步之遥

从昏迷中醒来,小明发现自己被关在 X 星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着 “F” 和 “B”。

小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按 F,会前进 97 米。按 B 会后退-127 米。 透过昏暗的灯光,小明看到自己前方 1 米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。 或许,通过多次操作 F 和 B 可以办到。

矿车上的动力已经不太足,黄色的警示灯在默默闪烁... 每次进行 F 或 B操作都会消耗一定的能量。 小明飞快地计算,至少要多少次操作,才能把矿车准确地停在前方 1 米远的地方。

请问为了达成目标,最少需要操作的次数是多少。

 解析:

这道题是一道填空题,题目意思不难理解,按‘F’表示向前97米,按‘B’表示向后127米,题目要求最少操作多少次能把矿车停在前方1米处,我们这里假设经过操作向前x次和向后操作y次正好满足题意,用数学表示:97x-127y=1,这里可以直接用暴力枚举的方法求出答案,今天也是介绍这种方法,当然这道题也可以用欧几里得算法来求,后续会补充。

代码实现:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int ans=600;	
	for(int i=0;i<=300;i++)
	  for(int j=0;j<=300;j++)
	   {
	   	if(i*97-j*127==1)
	   	{
	    ans=min(ans,i+j);
	    }
	}
	printf("%d\n",ans);
    return 0;
 }

 小结:

这个填空题用暴力法可以轻松解决,之后会补充此题的欧几里得算法的解法,需要用求逆元的知识,难度会加大,但可以培养算法思维,今天的分享先到这里,明天准时更新。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值