C# · 12月 26, 2021

c# – 用于循环计算阶乘

目前我有这套代码,它的意思是计算因子. int numberInt = int.Parse(factorialNumberText@R_607_2419@.Text);for (int i = 1; i < numberInt; i++){ numberInt = numberInt * i;}factorialAnswerText@R_607_2419@.Text = numberInt.ToString();

由于某种原因,它不起作用,我不知道为什么.例如,我将输入3并得到答案为-458131456这似乎真的很奇怪.

任何帮助赞赏.谢谢

解决方法 int numberInt = int.Parse(factorialNumberText@R_607_2419@.Text);int result = numberInt;for (int i = 1; i < numberInt; i++){ result = result * i;}factorialAnswerText@R_607_2419@.Text = result.ToString();

在旁注:这通常不是计算阶乘的正确方法.
在开始计算之前,您需要检查输入,以防起始值为1或更低,在这种情况下需要手动返回1.

另一方面注意:这也是递归方法可用的完美示例.

int Factorial(int i){ if (i <= 1) return 1; return i * Factorial(i – 1);}