用C++编写一个函数 求2/1 3/2 5/3 8/5 13/8 21/13...前n项和
时间: 2023-06-15 21:05:50 浏览: 127
以下是使用C++编写的函数,可以求出斐波那契数列前n项的和:
```c++
#include <iostream>
using namespace std;
double fibonacciSum(int n) {
double sum = 0;
double a = 2, b = 1, c;
sum += a / b;
for (int i = 1; i < n; i++) {
c = a + b;
sum += c / a;
b = a;
a = c;
}
return sum;
}
int main() {
int n;
cout << "请输入斐波那契数列的项数n: ";
cin >> n;
cout << "前" << n << "项斐波那契数列的和为: " << fibonacciSum(n) << endl;
return 0;
}
```
该函数运行时需要输入斐波那契数列的项数n,程序会返回前n项斐波那契数列的和。
相关问题
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 求1/1+1/3+...+1/n(要求利用函数指针编程)
以下是用C++语言编写的函数示例:
#include <iostream>
using namespace std;
double sum_even(int n); // 偶数求和函数
double sum_odd(int n); // 奇数求和函数
int main() {
int n;
double (*p)(int); // 定义函数指针
cout << "请输入一个正整数n:";
cin >> n;
if (n % 2 == ) {
p = sum_even; // 函数指针指向偶数求和函数
} else {
p = sum_odd; // 函数指针指向奇数求和函数
}
double result = (*p)(n); // 调用函数指针指向的函数
cout << "结果为:" << result << endl;
return ;
}
double sum_even(int n) {
double sum = ;
for (int i = 2; i <= n; i += 2) {
sum += 1. / i;
}
return sum;
}
double sum_odd(int n) {
double sum = ;
for (int i = 1; i <= n; i += 2) {
sum += 1. / i;
}
return sum;
}
在主函数中,首先定义了一个函数指针p,然后根据输入的n的奇偶性,将p指向相应的求和函数。最后调用函数指针指向的函数,得到结果并输出。
c++编写函数完成下面题目,要求用主函数调用所编写的函数: (1)求s=1+1/2!+1/3!+...+1/n!(编写一个求n!的函数)
在C++中,你可以通过递归的方式编写一个函数来计算阶乘(n!),然后在这个基础上构建一个函数来计算给定序列1+1/2!+1/3!+...+1/n!。这里是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 函数计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1; // 阶乘的基本情况
else
return n * factorial(n - 1); // 递归调用
}
// 主函数调用,计算并打印序列和
double seriesSum(int n) {
double sum = 0;
for (int i = 1; i <= n; ++i) {
sum += pow(1.0, 1.0/i) / factorial(i);
}
return sum;
}
int main() {
int n;
cout << "请输入一个正整数n: ";
cin >> n;
double result = seriesSum(n);
cout << "序列和为: " << result << endl;
return 0;
}
```
这个程序首先定义了一个`factorial`函数用于计算阶乘,然后在`seriesSum`函数中利用`factorial`计算每个分母,并将它们累加到`sum`中。最后,在`main`函数中获取用户输入的n值,并调用`seriesSum`计算结果。
阅读全文