c# 简单阶乘程序
本文关键字:程序 阶乘 简单 | 更新日期: 2023-09-27 18:25:33
private void button1_Click(object sender, EventArgs e)
{
String UserNumber = this.textBox1.Text;
int NewUserNumber = Convert.ToInt32(UserNumber);
int result = 0;
int second = 0;
while (NewUserNumber >= 1)
{
result = NewUserNumber * (NewUserNumber - 1);
NewUserNumber--;
}
String i = Convert.ToString(result);
this.textBox2.Text = i;
}
}
虽然我知道这对我来说是家庭作业,但我被困住了。我真的真的不想解决这个问题,我想自己做。
我不明白为什么它不起作用..无论我输入什么,它都会输出 2。
我可以轻松地在 Java 中做到这一点,但转换对我来说。
任何帮助都会很棒。
您的问题不在于转换。请看
result = NewUserNumber * (NewUserNumber - 1);
while (NewUserNumber > 1)
{
result = result * NewUserNumber;
NewUserNumber--;
}
将结果初始化为
int Result=1;
并按如下方式编写循环
while (NewUserNumber >= 1)
{
result = result * NewUserNumber;
NewUserNumber--;
}
或
你甚至可以使用福尔温
public int Factorial(int num)
{
if(num==1)
return 1;
return num * Factorial(num-1);
}
您需要查看 while 循环结构以及如何设置其外部的结果值和乘法
while (NewUserNumber >= 1)
{
result = NewUserNumber * (NewUserNumber - 1);
NewUserNumber--;
}
String i = Convert.ToString(result);
你也宣布了另一个int second = 0;
——不明白你为什么要这么说。
我的建议是尝试使用不同的输入手动运行代码。
您应该运行循环并尝试计算结果的值是多少,并且每次迭代中的 NewUserNumber 是什么。
祝你好运。。。
应尝试对代码运行调试器,然后使用监视窗口单步执行。 这很容易做到,并且会准确显示每个点的每个值(您设置断点(。 您使用的是什么 IDE?
int Factorial(int input({ 整数答案 = 0;
if (input > 0)
{
count = 1;
while (count <= input)
{
if (count == 1)
{
answer= 1;
count++;
}
else
{
answer = count * answer;
count++;
}
}
}
else
{
MessageBox.Show("Please enter only a positive integer.");
}
return answer;
}
static void Main(string[] args)
{
int number, fact;
Console.WriteLine("enter the number for geting factorial");
number = Convert.ToInt32(Console.ReadLine());
fact = number;
for (int i = fact - 1; i > 0; i--)
{
fact = fact * i;
}
Console.WriteLine(fact);
Console.ReadLine();
}