一步之遥——第七届蓝桥杯C语言B组(国赛)第一题

news/2024/7/8 6:24:08

原创


一步之遥

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

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

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

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

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

 

此题我用的解法是扩展欧几里德算法

具体算法看我的另外一篇博客:http://www.cnblogs.com/chiweiming/p/8878202.html

当我们算出 97x+127y=gcd(97,127)的第一组解(x0,y0)后;

我们可以得到 97x+127y=1的第一组解:

x=x0*1/gcd(97,127);

y=y0*1/gcd(97,127);

然后我们输出 abs(x)+ abs(y)即可。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int x,y;

int gcd(int a,int b)    //扩展欧几里德算法 
{
    int d;
    if(b==0)
    {
        x=1;
        y=0;
        return a;
    }
    else
    {
        d=gcd(b,a%b);
        int temp;
        temp=x;
        x=y;
        y=temp-(a/b)*y;
        return d;
    }
}

int main()
{
    int Byue;
    Byue=gcd(97,127);    //调用后x,y作为 97x+127y=gcd(97,127)的第一组解
//  printf("%d %d\n",x,y);
    printf("%d",abs( x*1/Byue  ) + abs( y*1/Byue ) );
    
    return 0;
}

下面给出直接暴力破解的代码:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int x,y,t,flag=0;
 5     for(t=0; ;t++)    //假设需要t步完成 
 6     {
 7         for(x=0;x<t;x++)    //走x步97 
 8         {
 9             y=t-x;    //剩下走y步127 
10             if(97*x-127*y==1)
11             {
12                 printf("%d",x+y);
13                 flag=1;
14             }
15             if(flag==1)
16                 break;
17         }
18         if(flag==1)
19             break;
20     }    
21     return 0;
22 }

11:07:31

2018-04-19

转载于:https://www.cnblogs.com/chiweiming/p/8881132.html


http://www.niftyadmin.cn/n/2010276.html

相关文章

java autoconfig_SpringBoot之AutoConfig自动配置

1. XxxxAuto在SpringBoot中有很多以XxxxAutoConfiguration注解&#xff0c;其实他的作用就是,自动配置当前模块要依赖的类例如:EnableAutoConfiguration就告诉SpringBoot需要加载那些类,spring-boot-1.5.1.RELEASE.jar/META-INF/spring.factories 在该文件中2. EnableSpringBoo…

@manytomany 保存后数据被删除_Smartbi V9数据挖掘完整介绍

Smartbi Mining平台是一个注重于实际生产应用的数据分析预测平台&#xff0c;它旨在为个人、团队和企业所做的决策提供预测。该平台不仅可为用户提供直观的流式建模、拖拽式操作和流程化、可视化的建模界面&#xff0c;还提供了大量的数据预处理操作。此外&#xff0c;它内置了…

php 如何跳转回前一个页面_PHP页面跳转到另一个页面的方法

PHP页面跳转到另一个页面的方法PHP页面跳转到另一个页面的方法是PHP学习当中必须掌握的&#xff0c;下面小编给大家整理了PHP页面跳转到另一个页面的方法&#xff0c;一起来学习吧&#xff01;PHP页面跳转到另一个页面的方法一、用HTTP头信息也就是用PHP的header函数。PHP里的h…

js和php能生成一样的随机数_JS实现去重的随机数生成

这次给大家带来JS实现去重的随机数生成&#xff0c;JS实现去重随机数生成的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。1.实验前准备&#xff1a;Math函数的理解数组方法的理解2.实验操作:随机数生成body{font-size: 20px;}#box{border:3px solid #…

uNo面板L灯一直闪_LED智能互联办公室照明恒流调光IC芯片无频闪H5114 - 信息发布 - 电子工程世界...

H5114 --【方案名称&#xff1a;LED智能互联办公室照明恒流调光IC芯片无频闪H5114】关键词&#xff1a;办公照明&#xff0c;无频闪&#xff0c;智能调光调色&#xff0c;智能照明&#xff0c;高辉度&#xff0c;65536&#xff1a;1调光比&#xff0c;共阳极&#xff0c;调光深…

ac 200调气软件_10.28更新 | 【V100R019C10】云管理配套设备及软件版本(Agile ControllerCampus控制器)...

本文提供华为云管理网络CloudCampus中小型园区网络解决方案——V100R019C10版本控制器侧的设备及软件版本查询&#xff0c;企业和伙伴可在网络工程规划、部署前参考本文&#xff0c;保证方案使用正确性。‍‍‍云AP配套关系表产品系列产品款型配套的软件版本WA系列Fit AP&#…

K折-交叉验证

k-折交叉验证(k-fold crossValidation)&#xff1a;在机器学习中&#xff0c;将数据集A分为训练集&#xff08;training set&#xff09;B和测试集&#xff08;test set&#xff09;C&#xff0c;在样本量不充足的情况下&#xff0c;为了充分利用数据集对算法效果进行测试&…

php电商开源框架,Fecshop是基于php Yii2框架之上开发的一款优秀的开源电商系统

1.6.0.0经过了一个月左右的时间&#xff0c;进行了一系列的开发和调整&#xff0c;fecshop后台部分进行了底层调整&#xff0c;加入了RBAC权限控制&#xff0c; 加入了多语言&#xff0c;加入了csrf(跨站请求伪造)&#xff0c;防范csrf攻击&#xff0c;增强安全性&#xff0c;前…