爬楼梯(c)

文章目录

    • 描述
    • 分析思路
    • 关键代码
    • 运行结果

描述

给定一个整数数组 cost,其中cost[i]是从楼梯第i 个台阶向上爬需要支付的费用,下标从0开始。-旦你支付此费用,即可选择向上爬一个或者两个台阶

要求:请你计算并返回达到楼梯顶部的最低花费。

分析思路

由图可分析:比较三组才可确定从下标0开始爬,还是下标1开始。同理依次比较三组。

关键代码

1、if...else if...else进行判断三个连在一起楼梯,中间要支付的费用与两旁相加支付费用的比较。(i+=2)然后进行下三组之间费用的判断。

cs 复制代码
    while (i < n - 1)
    {
        if ((cost[i] + cost[i + 2]) > (cost[i + 1]))//判断从下标0/1走
        {
            many += cost[i + 1];
            i = i + 2;
        }
        else if ((cost[i] + cost[i + 2]) < cost[i + 1])//判断从下标0/1走
        {
            many += cost[i] + cost[i + 2];;
            i += 2;
        }
        else
        {
            many += cost[i] + cost[i + 2];
            i += 2;
        }
    }

运行代码

css 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define n 5
int main() {
    int cost[n];
    int i = 0, many = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &cost[i]);
    }
    i = 0;
    while (i < n - 1)
    {
        if ((cost[i] + cost[i + 2]) > (cost[i + 1]))//判断从下标0/1走
        {
            many += cost[i + 1];
            i = i + 2;
        }
        else if ((cost[i] + cost[i + 2]) < cost[i + 1])//判断从下标0/1走
        {
            many += cost[i] + cost[i + 2];;
            i += 2;
        }
        else
        {
            many += cost[i] + cost[i + 2];
            i += 2;
        }
    }

    printf("%d\n", many);
    return 0;
}
相关推荐
yuuki2332333 小时前
【数据结构】用顺序表实现通讯录
c语言·数据结构·后端
ad钙奶长高高4 小时前
【C语言】扫雷游戏详解
c语言
丛雨要玩游戏7 小时前
字符函数和字符串函数
c语言·开发语言·算法
ad钙奶长高高7 小时前
【C语言】初始C语言
c语言·开发语言·算法
侯小啾7 小时前
【17】C语言-gets() 与 fgets() 函数
c语言·开发语言
是苏浙8 小时前
零基础入门C语言之枚举和联合体
c语言·开发语言
ACP广源盛1392462567310 小时前
(ACP广源盛)GSV2231---DisplayPort 1.4 MST 到 HDMI 2.0/DP/Type-C 转换器(带嵌入式 MCU)
c语言·开发语言·单片机·嵌入式硬件·音视频·mst
QT 小鲜肉10 小时前
【QT/C++】Qt网络编程进阶:UDP通信和HTTP请求的基本原理和实际应用(超详细)
c语言·网络·c++·笔记·qt·http·udp
Yurko1311 小时前
【C语言】选择结构和循环结构的进阶
c语言·开发语言·学习
范纹杉想快点毕业11 小时前
12个月嵌入式进阶计划ZYNQ 系列芯片嵌入式与硬件系统知识学习全计划(基于国内视频资源)
c语言·arm开发·单片机·嵌入式硬件·学习·fpga开发·音视频