在C ++中找到给定递归关系的第n个项
概念
假设bn是一个数字序列,由递归关系b1=1和bn+1/bn=2n表示。我们的任务是确定给定n的log2(bn)的值。
输入值
6
输出结果
15
说明
log2(bn)=(n*(n-1))/2=(6*(6-1))/2=15
输入值
200
输出结果
19900
方法
bn+1/bn=2n
bn/bn-1=2n-1
。
。
。
b2/b1=21,我们将以上所有相乘以获得
(bn+1/bn)。(bn/n-1)……(b2/b1)=2n+(n-1)+………。+1
因此,bn+1/b1=2n(n+1)/2
因为我们知道1+2+3+………。+(n-1)+n=n(n+1)/2
因此,bn+1=2n(n+1)/2。b1;假设初始值b1=1
所以bn+1=2sup>n(n+1)/2
现在用(n+1)代替n,我们得到
bn=2n(n-1)/2
取两边的日志,我们得到,
对数2(bn)=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
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短