c++ - 我应该使用哪种算法来计算给定的数学序列?
问题描述
用户必须输入一个数字n(1;无穷大)。然后程序会这样做:
cos1/sin1 * (cos1+cos2)/(sin1+sin2) * … * (cos1+cos2+...+cos n)/(sin1+sin2+...+sin n )
我试图计算:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n;
double res;
cout << "Enter n: ";
cin >> n;
for (int i = 1; i < n; i++)
{
res = cos(i) / sin(i);
}
cout << res;
}
但我不知道哪种算法能正确地做到这一点。
解决方案
由于您需要在每个步骤中将两个总和相除,因此您需要存储这些总和,并将累加乘积与相除的结果相乘。
int main()
{
int n;
cout << "Enter n: ";
cin >> n;
double cos_sum = 0.0;
double sin_sum = 0.0;
double res = 1.0;
for (int i = 1; i <= n; i++)
{
cos_sum += cos(i);
sin_sum += sin(i);
res *= cos_sum / sin_sum;
}
cout << res;
}
推荐阅读
- azure - FMI Toolbox Matlab Azure Devops CI Pipeline Bugs with network service account
- excel - 提取单元格数据,而行内的其他单元格匹配字符串
- data-annotations - Azure 数据工厂 - 通过数据注释查询管道
- php - 如何访问类中的常量?
- php - 我在标签内容中有登录和注册表单。所以问题是我可以为任何一种形式设置动作。我该如何解决
- c++ - 使用任务<>作为返回类型的co_await创建协程函数时出错
- html - 在汇总 html 表单之前,有没有办法确保至少填写一组字段中的一个?(“必需”仅用于一个场地)
- css - WP hello-elementor 主题:发表评论按钮在 Chrome 中有一个奇怪的边框
- python - 如何并行化/多线程多个生成器初始化?
- amazon-s3 - MERN 和 Amazon-s3 用于文件上传