【发布时间】:2015-12-13 12:00:43
【问题描述】:
我正在尝试编写一个 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());
}
但我不知道如何为应该将结果添加到下一个计算数字的序列部分编写代码。上面的代码只会从下一个数字中减去结果并打印结果,但是现在如何将减法的结果添加到下一个数字并再次打印到列表框?
第一个序列号 - 第二个序列号 = 结果(显示在列表框中)
结果 + 序列的第三个数 = 结果(显示在列表框中)
结果 - 序列的第四个数字 = 结果(显示在列表框中)
结果 + 序列的第五个数 = 结果(显示在列表框中)
如果我把问题解释得不好,我很抱歉,我尽量做到具体。我知道我错过了一个很小的部分,但我不知道它是什么,并且很抱歉写作,英语不是我的母语。
提前致谢
【问题讨论】:
-
能否提供姓名序号和要计算的结果序号?
-
如果我理解正确的话。例如,用户在文本框中输入 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。 (i