所以这就是问题:确定在条件(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;
}
答案 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”,因为每次迭代都要重新分配它们。但是你必须根据你的要求确定它!