如何解决这个头脑第一本java书的谜题?

时间:2014-02-23 14:13:42

标签: java puzzle

目前我正在阅读Head第一本java书。在此期间,我坚持在这个游泳池拼图。在这个难题中,我能够产生完整的输出,但不能在输出中产生空白(如下所示)。
池拼图意味着 - 根据书我需要使用池中的代码段(在书中绘制),然后将它们放入代码中的空白行。

所以这是我需要放置代码片段的主要代码。
注意 - 此代码中的虚线显示空行。(--------)
您可以将一个代码段用于一个空格,并且不需要使用所有代码段。

class triangle{
double area;
int height;
int length;

public static void main(String[] args){
------------    //blank space********
--------------  //blank space***********
while(-------){  //blank space *********

------------------ //blank space********
-------.height=(x+1)*2;  //blank space********
-----.length=x+4;  //blank space********
-----.setarea(); //blank space******

System.out.print("tringle "+x+" , area");
System.out.println(" = "+---------.area); //blank space********
----------  //blank space********

}
--------- //blank space********
x=27;
triangle t5= ta[2];
ta[2].area=343;
System.out.print("y= " + y);
System.out.println(" , t5 area = "+t5.area);
}
void setarea(){
----------=(height*length)/2;  //blank space********
}
}

您可以在上面给定的空格中使用这些代码段。您可以再使用一个代码段,而不需要使用所有代码段。除了以下给定的代码段之外,您不能使用任何其他代码。

triangele[]ta=new triangle[4];
triangel ta = new [] triangle[4];
triangle [] ta = new triangel[4];

x
y

area
ta.area
ta.x.area
ta[x].area

4, t5 area=18.0
4, t5 area=343.0
27,t5 area =18.0
27,t5 area=343.0

ta[x] setarea();
ta.x = setarea();
ta[x].setarea();

int x;
int y;
int x=0;
int x=1;
int y=x;

x=x+1;
x=x+2;
x=x-1;

28.0
30.0

ta=new triangle();
ta[x]=new triangle();
ta.x=new triangle();

ta.x
ta(x)
ta[x]

x<4
x<5

我需要在控制台屏幕上生成此输出。 (我没有使用任何IDE)
注意 - 在下面给出的输出(...........)点线是空白装置,我们需要在(......)这些点线的位置打印。我无法打印这个空白区域,这是我的问题。

triangle 0, area = 4.0
triangle 1, area = 10.0
triangle 2, area = 18.0
triangel 3, area = ..........
y = ........................

3 个答案:

答案 0 :(得分:0)

class Triangle {
double area;
int height;
int length;

public static void main (String[] args) {
int x = 0;
Triangle[] ta = new Triangle[4];
while (x < 4) {

ta[x] = new Triangle();
ta[x].height = (x + 1) * 2;
ta[x].length = x + 4;
ta[x].setArea();

System.out.print("triangle " +x+ ", area");
System.out.println(" = " + ta[x].area);
x = x + 1;

}//close while
int y  = x;
x = 27;
Triangle t5 = ta[2];
ta[2].area = 343;
System.out.print("y = " +y);
System.out.println(", t5 area = " +t5.area);
}//close main

void setArea() {
area = (height * length) / 2;
}//close setArea()
}//close class

上面的代码输出为:

triangle 0, area = 4.0
triangle 1, area = 10.0
triangle 2, area = 18.0
triangle 3, area = 28.0
y = 4, t5 area = 343.0

答案 1 :(得分:0)

这是答案,我在下面输入了

class Triangle {
double area;
int height;
int length;

public static void main (String[] args) {
int x = 0;
Triangle[] ta = new Triangle[4];
while (x < 4) {

ta[x] = new Triangle();
ta[x].height = (x + 1) * 2;
ta[x].length = x + 4;
ta[x].setArea();

System.out.print("triangle " +x+ ", area");
System.out.println(" = " + ta[x].area);
 x = x + 1;

 }//close while
  int y  = x;
  x = 27;
  Triangle t5 = ta[2];
  ta[2].area = 343;   
   System.out.print("y = " +y); 
   System.out.println(", t5 area = " +t5.area);
   }//close main

  void setArea() {
  area = (height * length) / 2;
  }
  }

我希望对您有帮助

答案 2 :(得分:-1)

class triangle{
double area;
int height;
int length;

public static void main(String[] args){
triangle [] ta = new triangel[4];
int x=0;  
while(x<4){ 

------------------ //blank space********
ta[x].height=(x+1)*2;  //blank space********
ta[x].length=x+4;  //blank space********
ta[x].setarea(); //blank space******

System.out.print("tringle "+x+" , area");
System.out.println(" = "+ ta[x].area); //blank space********
x++ 

}
int y = 28; 
x=27;
triangle t5= ta[2];
ta[2].area=343;
System.out.print("y= " + y);
System.out.println(" , t5 area = "+t5.area);
}
void setarea(){
 area =(height*length)/2;  // area should contain the area of the triangle
}
}