在C ++中找到给定递归关系的第n个项

概念

假设bn是一个数字序列,由递归关系b 1 = 1和b n + 1 / b n = 2 n表示。我们的任务是确定给定n的log 2(b n)的值。

输入值

6

输出结果

15

说明

log 2(b n)=(n *(n-1))/ 2 =(6 *(6-1))/ 2 = 15

输入值

200

输出结果

19900

方法

b n + 1 / b n = 2 n

b n / b n-1 = 2 n-1

b 2 / b 1 = 2 1,我们将以上所有相乘以获得

(b n + 1 / b n)。(b n / n-1)……(b 2 / b 1)= 2 n +(n-1)+………。+ 1

因此,b n + 1 / b 1 = 2 n(n + 1)/ 2

因为我们知道1 + 2 + 3 +………。+(n-1)+ n = n(n + 1)/ 2

因此,b n + 1 = 2 n(n + 1)/ 2。b 1 ; 假设初始值b 1 = 1

所以b n + 1 = 2sup> n(n + 1)/ 2

现在用(n + 1)代替n,我们得到

b n = 2 n(n-1)/ 2

取两边的日志,我们得到,

对数2(b n)= n(n-1)/ 2

示例

// C++ program to find nth term of

//给定的递归关系

#include <bits/stdc++.h>

using namespace std;

//显示函数以返回所需值

int sum(int n1){

   //现在得到答案

   int ans1 = (n1 * (n1 - 1)) / 2;

   //现在返回答案

   return ans1;

}

//驱动程序

int main(){

   //获取n的值

   //整数n = 6;

   int n = 200;

   //使用函数调用来打印结果

   cout << sum(n);

   return 0;

}

输出结果

19900

以上是 在C ++中找到给定递归关系的第n个项 的全部内容, 来源链接: utcz.com/z/351522.html

回到顶部