假设我们有一个整数X。我们必须找到从0到X所需的最小跳数。第一个跳的长度可以是一个单位,并且每个后续跳的长度将比上一个跳的长度长一个单位。每次跳跃都可以向左或向右走。因此,如果X = 8,则输出为4。0→-1→1→4→8是可能的阶段。
如果我们仔细观察,那么我们可以说
如果您一直向正确的方向跳跃,那么在n次跳跃之后,您将到达p = 1 + 2 + 3 +…+ n
如果我们也可以跳到左侧,则在第k次跳时,您将到达p – 2k点。
如果我们仔细选择向左跳转和向右跳转,则在n次跳转之后,您可以位于n(n + 1)/ 2和–(n *(n + 1)/ 2)之间的位置,与n(n + 1)/ 2相同的奇偶校验。
#include<iostream> #include<cmath> using namespace std; inline int sumOneToN(int n) { return (n * (n + 1)) / 2; } int jumps(int n) { n = abs(n); int ans = 0; while (sumOneToN(ans) < n or (sumOneToN(ans) - n) & 1) ans++; return ans; } int main() { int n = 9; cout << "Number of jumps: " << jumps(n); }
输出结果
Number of jumps: 5
本文向大家介绍在C ++中找到一个数字X,其数字之和等于N,包括了在C ++中找到一个数字X,其数字之和等于N的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将找到一个数字,其中一些(包括其数字)等于给定的数字N。 这个想法很简单,我们将检查给定数字的左右100个数字。N≤1000000000且总和不超过100不会被限制。 让我们看看解决问题的步骤。 初始化号码。 编写一个循环100次的
在普罗米修斯中,我有一个单调递增计数器(在本例中为IF-MIB的ifHCInOctets)。 在Grafana中,我可以使用简单的查询< code>ifHCInOctets{job='snmp ',instance='$Device ',ifDescr=~'eth0'}创建一个图表,并通过在右上角选择所需的范围来查看不同时间范围内绘制的计数器。 这几乎正是我想要的。然而,我希望图形总是从零开始,然
准备好了吗? 准备来开始我们的旅程!如果你就是那种从不看说明书的人,我推荐你还是回头看一下简介的最后一节。那里面讲了这个教学中你需要用到的工具及基本用法。我们首先要做的就是进入 ghc 的交互模式,接着就可以写几个函数体验一下 Haskell 了。打开终端机,输入 ghci,你会看到下列欢迎消息: GHCi,version6.8.2:http://www.haskell.org/ghc/ :?fo
从零开始 欢迎您选择ILRuntime , 根据下面教程您可以快速的开始。 起步 在Unity2018以上版本中开始使用ILRuntime ILRuntime1.6版新增了Package Manager发布,使用Unity2018以上版本可以直接通过Package Manager安装,具体方法如下 如果你使用的是中国特别版Unity,那直接打开Package Manager即可找到ILRuntim
本文向大家介绍从C ++中的除数列表中找到A和B,包括了从C ++中的除数列表中找到A和B的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将解决以下问题。 给定一个整数数组,我们必须找到两个数字A和B。数组中所有剩余的数字都是A和B的除数。 如果数字是A和B的除数,则它将在数组中出现两次。 让我们看看解决问题的步骤。 数组中的最大数字是A和B中的数字之一。假设它是A。 现在,B将是第二大
本文向大家介绍在C ++中找到偶数和奇数位数的数字总和,包括了在C ++中找到偶数和奇数位数的数字总和的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个整数N,我们必须找到奇数位和偶数位的和。因此,如果数字是153654,则odd_sum = 9,even_sum = 15。 为了解决这个问题,我们可以从最后一位提取所有数字,如果原始数字的位数是奇数,则最后一位必须是奇数位,否则将是偶数位。