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

My question is about recurrence of numbers and sequences in C++ and how to print them?

本文关键字:何打印 打印 C++ 问题是 数字 我的      更新时间:2023-10-16
#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(

但它应该是:

Y n = 1/2*(Y n-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