C++程序:求给定序列的第N项
在这个问题中,我们给定一个数字N。我们的任务是创建一个C++程序来查找给定序列中的第N项。
问题描述
求以下序列的和:
1, 1, 2, 3, 4, 9, 8, 27, 16, 81, 32, 243, 64, 729, 128, 2187, 256, ... N项
我们将找到该序列的通项公式。
让我们举个例子来理解这个问题:
示例1
输入
N = 6
输出
9
示例2
输入
N = 13
输出
64
解决方案
为了解决这个问题,我们需要仔细观察这个序列。它是一个混合序列,这种类型的序列最初很难识别,但稍后处理起来就容易了。
该序列是混合类型的序列,
在偶数位上,序列的索引是3的幂序列。
在奇数位上,序列的索引是2的幂序列。
通项公式如下:
T_{N}=2^{N/2}, 如果N是奇数。
3^{N/2}, 如果N是偶数。
示例
#include <iostream>
#include <math.h>
using namespace std;
int findLCM(int a, int b) {
int LCM = a, i = 2;
while(LCM % b != 0) {
LCM = a*i;
i++;
}
return LCM;
}
int findNTerm(int N) {
if(N%2 == 0){
return pow(3, ((N-1)/2));
}
else
return pow(2, (N/2));
}
int main() {
int N = 9;
cout<<N<<"th term of the series is "<<findNTerm(N)<<endl; N = 14; cout<<N<<"th term of the series is "<<findNTerm(N);
}输出
9th term of the series is 16 14th term of the series is 729
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP