计算迭代次数

时间:2016-10-11 22:49:43

标签: java loops for-loop nested-loops

所以这就是问题:确定在条件(a * a + b * b)>之前需要进行多少次迭代。达到了4:

newA = a * a - b * b + x

newB = 2 * a * b + y

a = newA

b = newB

我被困在这一段时间了。任何帮助将不胜感激。

 public static int findEscapeCount(double x, double y, int maxIterations)
{
    int count =0;
    double a;
    double b;
    double newA;
    double newB;

    for(a=0; a<maxIterations; a++)
    {
        for(b=0; b<maxIterations; b++)
        {
            newA = a * a - b * b + x;
            newB = 2 * a * b + y;
            a = newA;
            b = newB;

            if((a * a + b * b) < 4)
            {
                count = count+1;    

            }

       }

    }
    return count;
}

1 个答案:

答案 0 :(得分:1)

如果我正确地理解了这个问题,那么这应该符合你的需要:

public static int findEscapeCount(double x, double y, int maxIterations)
{
   int count =0;
   double a;
   double b;
   double newA;
   double newB;


   while((a * a + b * b) > 4)
   {
      a++;
      b++;

      newA = a * a - b * b + x;
      newB = 2 * a * b + y;
      a = newA;
      b = newB;

      count++;

   }

   return count;

}

编辑:在重新阅读问题后,我甚至不确定是否需要递增“a”和“b”,因为每次迭代都要重新分配它们。但是你必须根据你的要求确定它!