欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

模拟-铺地毯

程序员文章站 2023-12-27 15:51:52
...

题目:题目来源

反思:这里用到了一个正难则反的思想,如果顺序的思维解决不了问题,我们可以试试逆着来。
附上一句歌词以此来表达我的心情:“我想要怒放的生命”。

话不多说,代码如下:

/*
 * 日期:2020.02.24
 * 作者:城主
 * 题目:洛古普及题-铺地毯
 * 思路:写一个关于地毯的类,包括它的左下角坐标,
 *       及x轴和y轴的长度,可以写一个类的函数,
 *       用来辨别所要验证的点是否在地毯内,判断
 *       该点的最上面的地毯可用正难则反的思想,
 *       从最上面的地毯来判断,依次往下。
 */
import java.util.Scanner;
//地毯类
class floor
{
      public int x;
      public int y;
      public int length;//x轴的长
      public int hight;//y轴的长
      
      public Boolean judge(int x_t,int y_t)
      { 
    	  
    	  if(x<=x_t&&x_t<=(x+length))
    	  {
    		  if(y<=y_t&&y_t<=(y+hight))return true;
    		  else 
    			  return false;
    			 
    	  }
    	  else 
    		  return false;
      }
}
public class Test {
	
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		//input the sum of floor
		int num=scan.nextInt();
		floor array[]=new floor[num];
		//input floor
	    for(int i=0;i<num;i++)
	    {
	    	array[i]=new floor();
	    	array[i].x=scan.nextInt();
	    	array[i].y=scan.nextInt();
	    	array[i].length=scan.nextInt();
	    	array[i].hight=scan.nextInt();
	    }
	    //input point
	    int x_test=scan.nextInt();
	    int y_test=scan.nextInt();
	    //deal with
	    int temp=0;//label the number
	    int test=0;//label the result
	    for(int i=num-1;i>=0;i--)
	    {
	    	if(array[i].judge(x_test, y_test)==true)
	    	{
	    		temp=i;
	    		test=1;
	    		break;
	    	}
	    	
	    }
	    
	    if(test==1)System.out.println(temp+1);
	    else System.out.println(-1);
		

	}

}

相关标签: Java升级打怪篇

上一篇:

下一篇: