s=1!-2!+3!-4!...+19!-20!1!=1x12!=2x13!=3x2x1……要最简单的c#代码~ 就比如int s; 要for循环的那种 别弄那种很难的!我们才是入门!下面的是我自己做的,但是我想肯定错了 只是格式是这样的!急!!! 明天上课要讲的我简单说明一下我定义的变量i循环变量 s前20项和 t到第几项时的值 a就是改变符号的~(我是初学者啦~ 对这个不熟 有些说错了别笑话我t-t)int i, t=1, s = 0, a = 1;for (i = 1; i <= 20; i++){t = a * i;s = s + t;a = a * (-1);}label1.Text = s.ToString();我这个算出来才-10 那是肯定不对的,最后面是 减去20! 想想得多大一个负数了。。 也许int 还不够吧- -int i, t=1, s = 0, a = 1;for (i = 1; i <= 20; i++){t = t*(a * i);s = s + t;a = a * (-1);}label1.Text = s.ToString();
1 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
这里重点其实在于求阶乘,我写了一个函数,用于求阶乘,如下:
public long GetJC(int a)
{
if (a == 0 || a == 1)
{
return 1;
}
else
{
return a*GetJC(a-1);
}
}
然后,你的题是:s=1!-2!+3!-4!...+19!-20!
只要阶乘解决了,这个问题就OK了,下面是这道题的解决办法,我是将结果放在文本框中的,你可以根据自己的需要修改:
private void button2_Click(object sender, EventArgs e)
{
double results = 0;
for (int i = 1; i <= 20; i++)
{
results = results + Math.Pow((-1), (i - 1)) * GetJC(i);
}
textBox1.Text = Convert.ToString(results);
}
结果是很大的,结果为:-2.31732329055462E+18
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消