答案是21。
11的平方是121,17的平方是289.
x1^2-y=100
x2^2-y=268
那么x2^2-x1^2=168
(x2+x1)*(x2-x1)=168
x2+x1>x2-x1
于是乎
设计一个方法计算方程式
public Class Test{
public int a[]={0,0};
void testt(){
int temp=a[0]+a[1];
a[1]=temp/2;
a[0]=temp-a[1];//输入数组是[x2+x1的值,x2-x1的值]; 输出则为[x1,x2]
boolean b()
{
if(String.valueOf(a[0]).substring(String.valueOf(a[0]).indexOf('.')).equals("0")&&String.valueOf(a[1]).substring(String.valueOf(a1]).indexOf('.')).equals("0"))
return true;
else return false;
}
}
}
public static void main(String[] args){
Test t;
int data[];
int data2[]={1,2,3,4,7,8,21,24,42,56,84,168};
while(true)
{
int i=0;
data[].add(168/data2[i]);
if(168/data2[i]>data2[i++]) break;
}
while(true)
{
int i=0;
t.a[]=data[i];
t.testt();
if(t.b)
{
System.out.println("找到了,他是"+t.a[0]*t.a[0]-100);
break;
}
}
}
最简单的是brute force算法,用for循环依次从1开始试当前数是否满足条件,否则就i++
Math类的方法不太清楚但是大概的意思就是 :
if ( (Math.root(i+100) - (int)Math.root(i+100)) == 0 ){ ... }
你好、我来为你解答:
public interface Assaultable{
void attack();
}
public interface Mobile{
void move();
}
public abstract class Weapon implement Assaultable{
public void attack(){
}
}