Java 计算迭代次数

Java 计算迭代次数,java,loops,for-loop,nested-loops,Java,Loops,For Loop,Nested Loops,这就是问题所在:确定在达到条件(a*a+b*b)>4之前,需要多少次以下操作的迭代: newA=a*a-b*b+x 新生儿=2*a*b+y a=newA b=新手 我已经在这上面呆了一段时间了。任何帮助都将不胜感激 public static int findEscapeCount(double x, double y, int maxIterations) { int count =0; double a; double b; double newA;

这就是问题所在:确定在达到条件(a*a+b*b)>4之前,需要多少次以下操作的迭代:

newA=a*a-b*b+x

新生儿=2*a*b+y

a=newA

b=新手

我已经在这上面呆了一段时间了。任何帮助都将不胜感激

 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;
}
public static int findEscapeCount(双x,双y,int maxIterations)
{
整数计数=0;
双a;
双b;
双纽瓦;
双纽;

对于(a=0;a如果我正确理解了问题,这应该符合您的需要:

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”每次迭代都是必要的,因为你无论如何都要重新分配每个迭代……但你必须根据你的需求来确定这一点!

修复缩进。你得到的输出是什么?轻一点,@JoeC,OP发布了他/她的代码。这是一个合法的请求。你应该使用一个while循环来检查(a*a+b*b)的条件<4,并在每次迭代中增加a&b。然后记录迭代次数。当条件满足时,它将自动退出,并且您的计数将是正确的。我没有提供我的输出是什么。当x和y都等于1时,我得到的输出是1,而它应该是2。例如,我将尝试按照您所说的@big_water执行。谢谢您的建议。and谢谢@nicomp,我没有试图复制和粘贴答案的代码,我只是想寻求帮助。问题是,我需要提供最大迭代次数。因此,如果在最大迭代次数之后,条件仍然不满足,那么答案就是给定的最大迭代次数。我不确定如何在while循环中执行此操作。您可以检查“计数”带有“if”语句的变量,如果它等于“maxIterationCount”,则使用“break”中断while循环语句并返回计数我将“大于”切换为“小于”,并尝试了此操作,但仍然不正确。我不确定为什么这样做似乎有效。无论参数如何,每次都返回1。@JonahBartz我想您希望保持它比本例中的大。这不是您问题中的条件吗?@JonahBartz,什么数字s用于函数的输入(x和y)