Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#偶数与阶乘_C#_Numbers_Factorial - Fatal编程技术网

c#偶数与阶乘

c#偶数与阶乘,c#,numbers,factorial,C#,Numbers,Factorial,所以我有个问题。。。我需要用C#windows窗体构建程序,用texbox1和textbox2阶乘计算,并在richtextbox中显示偶数,用于循环,我已经构建了这个解决方案,但它只给我一个数字……它是mind****。。。。如果你知道我的意思。。。 有什么建议吗 private void button1_Click(object sender, EventArgs e) { int x = Convert.ToInt32(textBox1.Text);

所以我有个问题。。。我需要用C#windows窗体构建程序,用texbox1和textbox2阶乘计算,并在richtextbox中显示偶数,用于循环,我已经构建了这个解决方案,但它只给我一个数字……它是mind****。。。。如果你知道我的意思。。。 有什么建议吗

private void button1_Click(object sender, EventArgs e)
    {
        int x = Convert.ToInt32(textBox1.Text);
        int y = Convert.ToInt32(textBox2.Text);
        int fact = 1;
        for (int i = x; i<=y; i++)
        {
            fact = fact * y;
        }
        richTextBox1.Text = fact.ToString();
    }
private void按钮1\u单击(对象发送者,事件参数e)
{
int x=转换为32(textBox1.Text);
int y=转换为32(textBox2.Text);
int-fact=1;

对于(int i=x;i让我们从定义阶乘函数开始。您说过它必须是一个for循环,所以:

让我们从制作一个函数开始,该函数将打印列标题:

private void PrintHeaders(int x, int y) {
    StringBuilder builder = new StringBuilder();
    builder.AppendFormat("X = {0}; Y = {1}", x, y);
    builder.AppendLine();
    builder.AppendLine("===============|Number|Factorial|=============");
    richTextBox1.Text = builder.ToString();
}
最后,我们的click事件处理程序:

private void按钮1\u单击(对象发送者,事件参数e){
int x=转换为32(textBox1.Text);
int y=转换为32(textBox2.Text);
打印头(x,y);

对于(int i=x;i你在做的每一次迭代中,都会有一个结果damn.你是对的…我的错误,但它只计算我认为那些数字…并且只给我一行你期望的输出是什么?你也没有在这里计算阶乘阶乘是
1*2*3**n。你没有这样做,你是在做
x*(x+1)*(x+2)*…*(y)
,只有当
x>y
do
richTextBox1.Text+=fact.ToString()+“|”
在你的
for
循环中,为了启动DAM…你在这方面很在行!!!谢谢你的帮助,现在需要学习这段代码谢谢!!!我是在飞行中完成的,所以如果你遇到任何问题,请告诉我:)嘿…我们已经放弃了一件事,那就是只计算从texbox1(x)到texbox2(y)的间隔,并非所有要中断程序的数字:D:D:D@itboxpaslaugos我的错误:)。修改了上次循环的
,我当时正在做
x++
。将它改为
I++
@itboxpaslaugos是我的另一个错误。你应该在上次循环的
中将
阶乘(x)
改为
阶乘(I)
private int Factorial(int n) {
    int result = 1;
    for (int i = 2; i <= n; i++)
        result *= i;
    return result;
}
X = 1; Y = 4;
=======================|Number|Factorial|====================
=======================|2|2|=================================
=======================|4|24|================================
private void PrintHeaders(int x, int y) {
    StringBuilder builder = new StringBuilder();
    builder.AppendFormat("X = {0}; Y = {1}", x, y);
    builder.AppendLine();
    builder.AppendLine("===============|Number|Factorial|=============");
    richTextBox1.Text = builder.ToString();
}
private void button1_Click(object sender, EventArgs e) {
    int x = Convert.ToInt32(textBox1.Text);
    int y = Convert.ToInt32(textBox2.Text);
    PrintHeaders(x, y);
    for(int i = x; i <= y; i++) {
        if(i % 2 == 0) {
           int result = Factorial(i);   
           richTextBox1.Text += "==========|" + i + "|" + result + "|=============";
           richTextBox1.Text += Environment.NewLine; 
        }
    }
}