目录
查找方法解决方案
递归方法
示例
输出
上述代码的解释
迭代方法
结论
首页 后端开发 C++ 使用C++找到Pell数

使用C++找到Pell数

Aug 30, 2023 pm 06:09 PM
c语言 查找 咒语数量

使用C++找到Pell数

在给定的问题中,我们得到一个整数 n,我们需要找到 Pn,即该位置的咒语编号。现在,正如我们所知,拼写数是由以下公式给出的序列的一部分 -Pn = 2*Pn-1 + Pn-2

前两个起始数字 - P0 = 0 和 P1 = 1

查找方法解决方案

现在我们将通过两种方法来解决这个问题:递归和迭代。

递归方法

在这个公式中,我们将递归地应用公式Pell Number 并进行 n 次迭代。

示例

#include <iostream>

using namespace std;
int pell(int n) {
   if(n <= 2)
      return n;
   return 2*pell(n-1) + pell(n-2);
}
int main() {
   int n = 6; // given n
   cout << pell(n) <<"\n"; // Pell number at that position.
   return 0;
}
登录后复制

输出

70
登录后复制
登录后复制

上述代码的解释

在这种方法中,我们通过调用 pell(n-1) && pell(n-2) 来使用递归,直到 n 小于或等于 2,因为我们知道直到 2 的拼写数字与给定数字相同。上述程序的总体时间复杂度为O(N),其中N是给定的数字。

迭代方法

在这种方法中,我们将使用与上面相同的公式,但使用 for 循环而不是递归函数来计算数字。

示例

#include <iostream>

using namespace std;
int main() {
   int n = 6; // given n.
   int p0 = 0; // initial value of pn-2.
   int p1 = 1; // initial value of pn-1.
   int pn; // our answer.

   if(n <= 2) // if n <= 2 we print n.
      cout << n <<"\n";
   else {
      for(int i = 2; i <= n; i++) { // we are going to find from the second number till n.

         pn = 2*p1 + p0;
         p0 = p1; // pn-1 becomes pn-2 for new i.
         p1 = pn; // pn becomes pn-1 for new i.
      }

      cout << pn << "\n";
   }
   return 0;
}
登录后复制

输出

70
登录后复制
登录后复制

上述代码的解释

在给定的程序中,我们从 2 遍历到 n,并简单地将 pn-2 的值更新为 pn-1,将 pn-1 的值更新为 pn,直到达到 n .

结论

在本文中,我们使用递归和迭代解决了查找第 N 个咒语编号的问题。我们还学习了解决这个问题的C++程序以及解决这个问题的完整方法(正常且高效)。我们可以用其他语言编写相同的程序,例如C、java、python等语言。

以上是使用C++找到Pell数的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

c语言中typedef struct的用法 c语言中typedef struct的用法 May 09, 2024 am 10:15 AM

c语言中typedef struct的用法

c语言中strcpy和strcat的区别 c语言中strcpy和strcat的区别 May 08, 2024 pm 01:03 PM

c语言中strcpy和strcat的区别

c语言中real是什么意思 c语言中real是什么意思 May 09, 2024 pm 12:06 PM

c语言中real是什么意思

C语言乘方函数如何实现 C语言乘方函数如何实现 May 09, 2024 pm 11:33 PM

C语言乘方函数如何实现

c语言中scanf出现错误怎么办 c语言中scanf出现错误怎么办 May 09, 2024 am 11:39 AM

c语言中scanf出现错误怎么办

_complex在c语言中的用法 _complex在c语言中的用法 May 08, 2024 pm 01:27 PM

_complex在c语言中的用法

restrict在c语言中的用法 restrict在c语言中的用法 May 08, 2024 pm 01:30 PM

restrict在c语言中的用法

c语言中reg是什么意思 c语言中reg是什么意思 May 09, 2024 am 09:57 AM

c语言中reg是什么意思

See all articles