C# 如何将两个数相减,并将结果与序列中的第三个数相加?

C# 如何将两个数相减,并将结果与序列中的第三个数相加?,c#,listbox,C#,Listbox,我正试图编写一个C#程序,从用户那里获取一个输入值,然后将该值放入序列中,然后在列表框中打印序列中每个计算数的结果。顺序如下: S=1-X+X^2/2!-X^3/3!+X^4/4!- 每次程序启动时,列表框中显示的第一个数字是1。我被卡住了,我应该从用户输入(X)中减去1,然后将结果添加到序列的第三个计算数。例如,如果用户输入2作为输入,则第一个输出为1,第二个输出为-1,然后程序应将结果(-1)添加到序列的第三个计算数,即2,输出应为1。再次从第四个计算数中减去结果(1),再将结果添加到序列的

我正试图编写一个C#程序,从用户那里获取一个输入值,然后将该值放入序列中,然后在列表框中打印序列中每个计算数的结果。顺序如下:

S=1-X+X^2/2!-X^3/3!+X^4/4!-

每次程序启动时,列表框中显示的第一个数字是1。我被卡住了,我应该从用户输入(X)中减去1,然后将结果添加到序列的第三个计算数。例如,如果用户输入2作为输入,则第一个输出为1,第二个输出为-1,然后程序应将结果(-1)添加到序列的第三个计算数,即2,输出应为1。再次从第四个计算数中减去结果(1),再将结果添加到序列的第五个计算数中,然后

到目前为止,我写了以下内容:

private void button1_Click(object sender, EventArgs e)
    {
        int x = Convert.ToInt32(textBox1.Text);
        listBox1.Items.Clear();
        listBox1.Items.Add("1".ToString());
        double numerator = 1, Fact = 1, firstNum = 1, result;
        for (int i = 1; i <= 20; i++)
        {
            numerator = x * numerator;
            Fact = Fact * i;
            result = numerator / Fact;
            firstNum = firstNum - result;
            listBox1.Items.Add(firstNum.ToString());
        }
private void按钮1\u单击(对象发送者,事件参数e)
{
int x=转换为32(textBox1.Text);
listBox1.Items.Clear();
listBox1.Items.Add(“1.ToString());
双分子=1,事实=1,第一个数=1,结果;

对于(int i=1;i可能尝试将减法的结果(firstNum-result)存储到一个变量,然后将其添加到下一个数字?

看起来序列公式是

f(i)=(-x)^i/i!对于0..N中的i,0!=1

可按如下方式制作

private void button1_Click(object sender, EventArgs e)
{
    int x = Convert.ToInt32(textBox1.Text);
    listBox1.Items.Clear();
    double numerator = 1, denominator = 1;
    int i = 0;
    while(true)
    {
        var result = numerator / denominator;
        listBox1.Items.Add(result.ToString());;
        if (++i > 20) break;
        numerator *= -x;
        denominator *= i;
    }      
}
var seqLimit=Convert.ToInt32(Textbox1.Text);
var numberX=Convert.ToInt32(XTextBox.Text);
ListBox1.Items.Clear();
var结果=1.0;

对于(var i=1;i来说,您几乎走上了正确的轨道。只是遗漏了一些东西

这是您的程序的正确版本-->

private void button1_Click(object sender, EventArgs e)
{
    int x = Convert.ToInt32(textBox1.Text);
    listBox1.Items.Clear();
    listBox1.Items.Add("1".ToString());
    double numerator = 1, Fact = 1, firstNum = 1, result=0;
    for (int i = 1; i <= 20; i++)
    {
        Fact = 1;       // Reinitialising every time for new denomerator.
        numerator = Math.Pow(x, i);     // This is how power is calculated.
        for (int j = 1; j<=i; j++)      // One more inner loop is needed for Factorial.
            Fact = Fact * j;
        result = numerator / Fact;
        firstNum = firstNum + (Math.Pow(-1, i) * result);   // This is the main logic for alternate plus minus.
        listBox1.Items.Add(firstNum.ToString());
    }
}
private void按钮1\u单击(对象发送者,事件参数e)
{
int x=转换为32(textBox1.Text);
listBox1.Items.Clear();
listBox1.Items.Add(“1.ToString());
双分子=1,事实=1,第一个数=1,结果=0;

对于(int i=1;如果我理解正确,您可以提供一个数字序列和要计算的结果序列吗?例如,用户在文本框中输入2。第一个输出是1,第二个输出是(1-2=-1),第三个输出是(-1+4/2=1),第四个输出是(1-8/6=-0.33),第五个输出是(-0.33+16/24=0.33),第六个输出是(0.33-32/120=0.064)。这是序列的第一个第六个输出,但我希望它继续这样,直到数字20,甚至让用户在第二个文本框中输入另一个数字作为序列限制。对不起,直到数字20,我指的是序列的第20个数字。直到循环中的“i”等于20。(我试过了,但它会打印一些奇怪的结果,而且程序会给出20多个输出。非常感谢。这正是我所缺少的,阶乘的第二个内部循环,而且我不知道交替加减的逻辑。再次感谢你花时间帮助我。不客气。你可以如果你已经有了自己的解决方案,那就学习如何调试程序吧。
private void button1_Click(object sender, EventArgs e)
{
    int x = Convert.ToInt32(textBox1.Text);
    listBox1.Items.Clear();
    listBox1.Items.Add("1".ToString());
    double numerator = 1, Fact = 1, firstNum = 1, result=0;
    for (int i = 1; i <= 20; i++)
    {
        Fact = 1;       // Reinitialising every time for new denomerator.
        numerator = Math.Pow(x, i);     // This is how power is calculated.
        for (int j = 1; j<=i; j++)      // One more inner loop is needed for Factorial.
            Fact = Fact * j;
        result = numerator / Fact;
        firstNum = firstNum + (Math.Pow(-1, i) * result);   // This is the main logic for alternate plus minus.
        listBox1.Items.Add(firstNum.ToString());
    }
}