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 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消