C语言

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

2018-10-29  本文已影响0人  花开终落_196a

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


1.问题描述:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.代码展示:

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

#include<stdio.h>

#define M 100

int main()

{

int i,j;

for(i=0;i<M;i++)

for(j=0;j<M;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了!

上一篇 下一篇

猜你喜欢

热点阅读