目前我有这套代码,它的意思是计算因子.
int numberInt = int.Parse(factorialNumberTextBox.Text); for (int i = 1; i < numberInt; i++) { numberInt = numberInt * i; } factorialAnswerTextBox.Text = numberInt.ToString();
由于某种原因,它不起作用,我不知道为什么.例如,我将输入3并得到答案为-458131456这似乎真的很奇怪.
任何帮助赞赏.谢谢
解决方法
int numberInt = int.Parse(factorialNumberTextBox.Text); int result = numberInt; for (int i = 1; i < numberInt; i++) { result = result * i; } factorialAnswerTextBox.Text = result.ToString();
在旁注:这通常不是计算阶乘的正确方法.
在开始计算之前,您需要检查输入,以防起始值为1或更低,在这种情况下需要手动返回1.
另一方面注意:这也是递归方法可用的完美示例.
int Factorial(int i) { if (i <= 1) return 1; return i * Factorial(i - 1); }