一步之遥c语言编程,挑战蓝桥杯之 —— 一步之遥

挑战蓝桥杯之  ——   一步之遥

1.问题描述:

从昏迷中醒来,小明发现自己被关在X星球的废矿车里。

矿车停在平直的废弃的轨道上。

他的面前是两个按钮,分别写着“F”和“B”。

小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。

按F,会前进97米。按B会后退127米。

透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。

他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。

或许,通过多次操作F和B可以办到。

矿车上的动力已经不太足,黄色的警示灯在默默闪烁...

每次进行 F 或 B 操作都会消耗一定的能量。

小明飞快地计算,至少要多少次操作,才能把矿车准确地停在前方1米远的地方。

请填写为了达成目标,最少需要操作的次数。

注意,需要提交的是一个整数,不要填写任何无关内容(比如:解释说明等)”

这道题在竞赛中要求是只提交答案,但是我们不可能拿答案一个一个去尝试,因为那么容易就能解决的,毕竟是蓝桥杯的决赛试题之一。我们既然学了编程,就要用编程的思想去解决实际问题。

2.代码展示:

我发现只需简单几句程序就可以解决此问题,非常简单,现将代码分享于下:

#include

#define M 100

int main()

{

int i,j;

for(i=0;i

for(j=0;j

{

if(97*i-127*j==1)

{

printf("前进:%d步\t后退%d步\t",i,j);

printf("\n共操作%d步!\n",(i+j));

}

}

return 0;

}

程序是不是看起来好简单?没错,其实有些问题简单几步就可以解决,我们现在要锻炼的就是会把实际问题转变为真正的C语言,然后用程序来解决类似的问题。网上也有好多关于此问题的解答,但感觉较为复杂,而且好多东西也不大能看懂,显然网上有些东西只能做参考,我们或许会有更好的解决方案,所以一切请不要依赖于网络,将自己的思维完全局限于网络!

注:至于为什么小编要定义M为100,其实小编也是尝试,如果操作步骤超过200次(近似值),我们只需要继续放大M的值就OK了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值