c - 在屏幕上显示进程的 n 元素

标签 c c++builder-6

我的任务是

Show on the screen n-element of the progression {xi}.

Xi = Xi-1 - 3Xi-2
X0 = 0
X1 = 2
i = [2,n]

到这里就完成了,但是我不太理解这个主题,所以我需要一些帮助。 我的代码(不起作用):

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int n = Edit1->Text.ToInt();
  int i, x;
  if(n==0){
    i=0;
    Label1->Caption = IntToStr(i);
  }
  if(n==1){
    i=2;
    Label1->Caption = IntToStr(i);
  }
  else {
    for(i=2;i<=n;i++){
      x=(i-1)-3*(i-2);
      Label1->Caption = IntToStr(x);
    }
  }
}

没有必要在C++ Builder中编写代码

最佳答案

您误解了级数公式。 Xi-1Xi-2 指的是您的进度中计算的先前元素。

因此您需要两个变量,它们将携带您刚刚计算的先前值。在任何给定的循环中,您可以使用通用级数公式计算当前的 Xi 值,然后将 Xi-1 的值复制到 Xi-2 中,抛出 Xi-2 的先前值。然后将 Xi 的值(到目前为止的当前值)复制到 Xi-1 中。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int n = Edit1->Text.ToInt();
  int i, x;
  int xim1, xim2
  if(n==0){
    i=0;
    Label1->Caption = IntToStr(i);
  }
  if(n==1){
    i=2;
    Label1->Caption = IntToStr(i);
  }
  else {
    xim1 = 2;
    xim2 = 0;
    for(i=2;i<=n;i++){
      x = xim1-3*xim2;
      xim2 = xim1;
      xim1 = x;
    }
    Label1->Caption = IntToStr(x);
  }
}

关于c - 在屏幕上显示进程的 n 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433435/

相关文章:

c - 如何正确地将输入扫描到 C 中的结构中并将其显示出来?

c++ - 修复一些在 C++ 程序中扭曲字体的机器上的大系统字体?

c - 用于索引 3D 矩阵的 1 维数组

c - wav 数据外推

c - 两个共享库实现相同的 API

c# - 如何使用udp从C#客户端与C服务器通信?

c++ - vector/算法与 iostream 之间的不兼容性

c++ - SQLite。在 C++Builder 6 CodeGuard 中的 sqlite3.c 中有许多 'access overrun' 'arithmetic overrun' 'resource leak'

c++ - 删除动态创建的控件 borland 6 c++ builder

c++ - Brainfuck 解释器奇怪的输出