gpt4 book ai didi

c++ - 我的问题是关于 C++ 中数字和序列的重复以及如何打印它们?

转载 作者:行者123 更新时间:2023-11-27 22:37:14 24 4
gpt4 key购买 nike

#include <iostream> 
#include <cmath>

using namespace std;

int main()
{
int i;
const int N = 5;
for (i = 1; i <= N; i++){
double Yn = (1.0 / 2) * (Yn - 1) + (1.0 / 3) * (Yn - 2);
std::cout << i << " " << "= "<< " " << Yn;
std::cout << std::endl;
}

return 0;
}

我有一个方程式和一个序列表。

方程式

Y[n] = 1/2*(Y[n-1]) + 1/3*(Y[n-2])

Y[1] = 0.5, Y[2] = 0.4

应该使用 for 循环打印下表。

N -- Yn  
1 -- 0.5
2 -- 0.4
3 -- 0.366667
4 -- 0.316667
5 -- 0.280556

我所要做的就是打印上面的表格。

最佳答案

你写错了顺序。

你有:

Yn = 1/2*(Yn - 1) + 1/3*(Yn - 2)

但应该是:

Yn = 1/2*(Yn-1) + 1/3*(Yn-2)

因此您需要跟踪序列中的前两个数字以计算下一个:

int i=1;
const int N = 5;
double Y_prev1 = 0.4;
double Y_prev2 = 0.5;
std::cout << i++ << " " << "= "<< " " << Y_prev2 << std::endl;
std::cout << i++ << " " << "= "<< " " << Y_prev1 << std::endl;
for (; i <= N; i++){
double Y = (1.0 / 2) * (Y_prev1) + (1.0 / 3) * (Y_prev2);
std::cout << i << " " << "= "<< " " << Y;
std::cout << std::endl;
Y_prev2 = Y_prev1;
Y_prev1 = Y;
}

输出:

1 =  0.5
2 = 0.4
3 = 0.366667
4 = 0.316667
5 = 0.280556

关于c++ - 我的问题是关于 C++ 中数字和序列的重复以及如何打印它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com