盗贼跨越墙壁所需的跳跃次数

盗贼跨越墙壁所需的跳跃次数

想象一下一个囚犯(或小偷)想要从监狱逃脱。为了做到这一点,他需要越过 N 个长度不同的墙。他每次跳跃可以爬升 X 英尺。但是,由于墙壁很滑,他每次跳跃后会下滑 Y 英尺。因此,我们需要计算穿越所有墙壁所需的跳跃次数。在本文中,我们将探讨不同的C++技术,以找到逃脱监狱所需的跳跃次数。

输入输出场景

我们以数组的形式有不同高度的 N 面墙。 X 是跳跃长度,而Y 是他后退的长度。我们有跳跃次数作为输出。

Input: height[] = {5, 18, 10, 3}       N = 4, X = 5, Y = 2Output: 11Input: height[] = {15, 8, 10, 3, 5, 12}       N = 6, X = 5, Y = 2Output: 16

登录后复制

使用迭代方法

在这里,我们使用forwhile循环来找到跳跃次数。

当墙的高度小于跳跃长度(x)时,可以单次跳跃越过墙。因此,numJumps增加一。我们使用 continue 语句来停止剩余的循环并继续进行下一个循环。

当高度大于跳跃长度时,我们使用while循环通过h – (x – y)计算跳跃次数,直到剩余高度变小大于或等于跳跃长度。

接下来,我们为最后一面墙添加一次跳跃。

Example

的中文翻译为:

示例

#include using namespace std;int numOfJumps(int x, int y, int N, int heights[]) {   int numJumps = 0;   // When the height is less than jump length   for (int j = 0; j = heights[j]) {         numJumps++;         continue;      }      // When the height is more than jump length      int h = heights[j];      while (h > x) {         numJumps++;         h = h - (x - y);      }      numJumps++;   }   return numJumps;}int main() {   int N = 5; // Number of walls   int x = 4; // jump height   int y = 1; // length after he slips back   int heights[] = {5, 18, 10, 3, 5};   int minJumpsRequired = numOfJumps(x, y, N, heights);   cout 

输出

Minimum number of jumps required: 14

登录后复制

使用直接计算

以下是计算小偷越过墙壁所需跳跃次数的公式 -

Jumps = ceil((h - y) / static_cast(x - y))

登录后复制

我们使用一个for循环来遍历每堵墙。当前墙的高度存储在变量h中。

然后,我们用公式直接计算出需要的跳跃次数。我们使用 ceil 函数将值四舍五入到最接近的整数。

Example

的中文翻译为:

示例

#include #include using namespace std;int numOfJumps(int x, int y, int N, int height[]) {    int numJumps = 0;        for (int j = 0; j (x - y));        numJumps += jumpsRequired;    }        return numJumps;}int main() {    int x = 8, y = 2;    int height[] = { 4, 14, 8, 16, 20, 11 };    int N = sizeof(height) / sizeof(height[0]);        int minJumpsRequired = numOfJumps(x, y, N, height);    cout 

输出

Minimum number of jumps required: 12

登录后复制

使用除法和模运算符

我们还可以使用 除法 (/)取模 (%) 运算符来计算跳跃的次数。在这里,我们计算墙的高度与跳跃长度之间的差值。如果差值大于0,我们通过将其除以 (x-y) 来计算跳跃次数。如果有余数,我们就加一。而如果差值为零或负数,则我们只需要一次跳跃。

Example

的中文翻译为:

示例

#include using namespace std;int numOfJumps(int x, int y, int N, int height[]) {   int jumps = 0;   for (int j = 0; j  0) {         jumps++;         // Additional jumps         jumps += diff / (x - y);         // If there is a remainder, increment the jumps         if (diff % (x - y) != 0)            jumps++;      }      // When height is less than jump length      else {         jumps++;      }   }   return jumps;}int main() {   int N = 5; // Number of walls   int x = 5; // jump height   int y = 2; // length after he slips back   int height[] = { 15, 8, 10, 3, 5, 12};   int minJumpsRequired = numOfJumps(x, y, N, height);   cout 

输出

Minimum number of jumps required: 12

登录后复制

结论

我们讨论了各种方法来确定小偷越墙的跳跃次数。我们可以使用迭代方法。我们可以直接使用公式来代替这样的迭代。另外,我们可以使用除法取模运算符来解决这个问题。

以上就是盗贼跨越墙壁所需的跳跃次数的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2582243.html

(0)
上一篇 2025年3月6日 14:11:00
下一篇 2025年2月28日 12:29:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 最大的瑞利三角形在一个正方形内?

    在这里,我们将看到最大的鲁洛三角形内接于正方形的面积。正方形的边是“a”。鲁洛三角形的高度为 h。 鲁洛三角形的高度与a相同。所以a=h。所以鲁洛三角形的面积是 – 示例 #include #include using name…

    2025年3月6日
    200
  • 找到在将一个二进制字符串清空(通过移除非空子字符串)后,0的数量最少的玩家

    在本文中,我们将讨论一个有趣的问题,涉及到字符串操作和博弈论领域:“通过删除非空子字符串来清空二进制字符串,找到剩余0最少的玩家”。这个问题探索了使用二进制字符串进行竞技游戏的概念。我们的目标是在游戏结束后找出剩余0最少的玩家。我们将讨论这…

    2025年3月6日
    200
  • 在C++中,将以下内容翻译为中文:寻找长度和宽度之间差异最小的矩形

    给定一个矩形区域作为输入。目标是找到矩形的边,使长度和宽度之间的差异最小。 矩形的面积 = 长度 * 宽度。 示例 输入− 面积 = 100 输出− 差异最小的矩形边: 长度 = 10,宽度 = 10 立即学习“C++免费学习笔记(深入)”…

    2025年3月6日
    200
  • 在C语言中,fork()函数

    在本节中,我们将了解C语言中的fork系统调用。这个fork系统调用用于创建一个新的进程。这个新创建的进程被称为子进程。创建另一个子进程的当前进程被称为父进程。 子进程使用相同的程序计数器、CPU寄存器和父进程使用的相同文件。 fork()…

    2025年3月6日
    200
  • 小于n的立方数自由数

    无立方因子的数是指那些没有立方数作为因子的数。 立方数因子是指一个整数,它是一个立方数并且能够整除该数而没有余数。 例如,8是16的立方数因子,因为8是2的立方数(2*2*2 = 8),并且8除以16的余数为零。 因此,8和16都不是无立方…

    2025年3月6日
    200
  • 七边形数

    a heptagonal number is a number which can be represented as a heptagon. a heptagon is a polygon with 7 sides. a heptagon…

    2025年3月6日 编程技术
    200
  • 如何进行C++代码的代码审查?

    如何进行C++代码的代码审查? 代码审查是软件开发过程中非常重要的一环,它能够帮助开发团队识别并纠正潜在的错误,提高代码质量,减少后续维护和调试的工作量。对于C++这样的强类型静态语言来说,代码审查尤为重要。下面将介绍一些关键步骤和注意事项…

    2025年3月6日
    200
  • 如何通过C++编写一个简单的记账本程序?

    本文将介绍如何使用C++编写一个简单的记账本程序,随着生活成本的不断上升,越来越多的人开始关注自己的财务状况。使用记账本可以记录收支情况,提高理财能力,C++语言的优势在于其高效性和可移植性,非常适合编写此类程序。 1.确定程序功能和需求 …

    2025年3月6日
    200
  • 如何进行C++多线程编程?

    如何进行C++多线程编程? 随着计算机硬件的不断发展,多核处理器已经成为现代计算机的主流。为了充分利用多核处理器的性能,多线程编程成了一个重要的技能。C++是一门强大的编程语言,也提供了很多多线程编程的工具和库。本文将介绍如何进行C++多线…

    2025年3月6日
    200
  • 如何使用C++进行算法优化?

    如何使用C++进行算法优化? 概述:在计算机科学领域,算法优化是提高算法效率和性能的关键过程。使用C++编写算法的一个重要方面是了解如何优化算法来减少时间和空间复杂度。本文将介绍一些可用的技术和策略,帮助开发者在C++中实现高效的算法。 1…

    2025年3月6日
    200

发表回复

登录后才能评论