3. 計算徑向多項式

int factor(int n)
{
    int d = 1;
    for (int i = n; i >= 2; i--) d *= i;
    return d;
}

Console.Write("請輸入徑向距離(r) = ");
double r = double.Parse(Console.ReadLine());
Console.Write("請輸入徑向多項式的次數(n) = ");
int n;
if (!int.TryParse(Console.ReadLine(), out n))
{
    Console.WriteLine("n不是非負整數");
    return;
}
for (int m = 0; m <= n; m += 2)
{
    double o = 0;
    for (int s = 0; s <= (n - m) / 2; s++)
    {
        o += Math.Pow(-1, s) * (factor(n - s)) / (factor(s) * factor(
           (int)(((double)n + m) / 2 - s)
            ) * factor((int)((double)n - m) / 2 - s)) * Math.Pow(r, n - 2 * s);
    }

    Console.WriteLine("計算徑向多項式(radial polynomials) ..., r = " + r + ", n = " + n + ", m = " + m);
    Console.WriteLine("所求之徑向多項式為 = " + o);
}
Console.WriteLine("計算完畢!");

Last updated