Java中的数组长度问题?

时间:2014-10-23 19:22:43

标签: java diophantine

所以我正处理一个需要我的问题:

  

使用3个嵌套循环生成(F ^ 5-E ^ 5-D ^ 5)的所有组合的每个组合。然后使用3个不同的嵌套循环生成(A ^ 5 + B ^ 5 + C ^ 5)的每个组合并存储所有这些值。其中0 < A≤B≤C≤D≤E≤F≤N

我一直关注这个thread,这正是我想要完成的。

我遇到的问题是我的代码设置方式,每次循环再次出现时,我存储值的数组都会被覆盖。

数组需要多长时间来存储值(可能是N ^ 3)?如何在不覆盖的情况下完成?

到目前为止,这是我的代码:

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the value for N:");

    int n = scan.nextInt();
    int countF = n;

    double[] fifth_orderN = new double[n+1];
    double[] F_answer = new double[n+1];
    double[] A_answer = new double[n+1];

    for(int i = 1; i != n+1; i++)
    {
        fifth_orderN[i] = Math.pow(i, 5);
    }

    for(int i = 1; i != n+1 ; i++)
    {
        double F = Math.pow(countF, 5);
        countF--;

        for(int j = 1; j != n+1 ; j++)
        {
            double E = fifth_orderN[j];

            for(int k = 1; k != n+1; k++)
            {
                double D = fifth_orderN[k];
                double ans = (F-(D+E));

                if(ans < 0)
                {
                    break;
                }
                else
                {
                    F_answer[k] = ans;
                }
            }
        }
    }

    for(int i = 1; i != n+1; i++)
    {
        double A = fifth_orderN[i];

        for(int j = 1; j != n+1; j++)
        {
            double B = fifth_orderN[j];

            for(int k = 1; k != n+1; k++)
            {
                double C = fifth_orderN[k];
                double ans = (A + B + C);
                A_answer[k] = ans;
            }
        }
    }
}

0 个答案:

没有答案