wch110011 2023-04-22 12:09 采纳率: 66.7%
浏览 29
已结题

关于算法的一个问题1

小海豚喜欢打游戏,现在它在操纵游戏人物小C逃脱废弃的隧道,逃生装置在小C的前方 X 米远的位置。但是游戏机只有两个按钮:前进和后退,按前进,小C会前进 m 米,按后退,小C会后退 n 米。

小海豚必须设法把小C送到逃生装置上,方能逃离隧道,请你小海豚,告诉它至少要操作多少次,才能通关。

输入描述:

输入三个正整数X、m和n

输出描述:

输出一个整数,表示小海豚通关需要操作的次数

输入样例:

5 77 157

输出样例:

73
请问用c语言怎么做

  • 写回答

2条回答 默认 最新

  • CF2301_77400554X 2023-04-22 12:14
    关注

    引用chatgpt部分指引作答:
    以下是 C 语言的代码实现:

    #include <stdio.h>
    
    int main() {
        int X, m, n;
        scanf("%d %d %d", &X, &m, &n);
        int dist = 0, count = 0;
        while (dist < X) {
            if (X - dist >= m) {
                dist += m;
                count++;
            }
            else {
                dist -= n;
                count++;
            }
        }
        printf("%d", count);
        return 0;
    }
    
    
    

    算法思路如下:

    1 首先输入三个正整数 X、m 和 n。

    2 定义两个变量 dist 和 count,分别表示小 C 和逃生装置之间的距离和操作次数。

    3 使用 while 循环,每次判断小 C 与逃生装置之间的距离是否已经小于 X,如果小于 X,则继续操作;否则结束循环。

    4 如果小 C 可以前进 m 米,使得距离变短,则前进 m 米,并将操作次数 count 加 1。

    5 如果小 C 不能前进 m 米,则后退 n 米,并将操作次数 count 加 1。

    6 循环结束后,输出操作次数 count。

    该算法的时间复杂度为 O(X/(m-n)),空间复杂度为 O(1)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 创建了问题 4月22日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系