我需要帮助创建/改进我的for循环

时间:2015-11-29 11:23:14

标签: c# arrays sorting for-loop

我创建了一个创建多项式的程序。但是,我无法以正确的方式显示指数。

例如,如果我在我的数组中输入[1,2,3]来创建我的多项式,我会得到多项式:1 + 2x + 3x ^(2)。我想要回来的是:1x ^(2)+ 2x + 3.请注意,我的数组中的数字仍然是相同的顺序。唯一改变的是指数和权力从左侧开始变化(最高程度从左侧开始)。我需要帮助做这一部分。

以下是我对其进行排序的循环代码:

\

提前致谢!

2 个答案:

答案 0 :(得分:1)

只需启动i到n-1并在每次迭代中减去

public void printPoly1(int[] poly, int n)
{
    for (int i = n-1; i  >= 0; i--)
    {
        Console.Write(poly[i]);
        if (i != 0)
        {
            Console.Write("x^" + i + " + ");
        }
    }
    Console.WriteLine("\n");
}

答案 1 :(得分:0)

更改此部分

if (i != 0)
{
    Console.Write("x^" + i);
}

到此

if ((n - 1 - i) != 0)
{
    Console.Write("x^" + (n - 1 - i));
}

因为功率应该从循环结束开始(如反向循环)。但是你从头到尾迭代(正常循环)。因此,从i中减去计数器(n - 1)。

如果你仍然不明白,那么看看这里。第一行是计数器循环,应该从0到6开始。

0    1    2    3    4    5    6    // normal

6-0  6-1  6-2  6-3  6-4  6-5  6-6  // do subtract

6    5    4     3    2    1    0   // inverse