源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用JAVA判断凸多边形的示例代码

  • 时间:2022-08-25 21:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用JAVA判断凸多边形的示例代码
[u]复制代码[/u] 代码如下:
以HDU2108为例,去AC吧。 //点逆序输入 import java.util.Scanner; //1s public class HDU2108 {   public static void main(String[] args) {     Scanner sc = new Scanner(System.in);     while(true) {       int x,y;       int n = sc.nextInt();       if(0==n) {         break;       }       Point[] p = new Point[n];       for(int i=0; i<n; i++) {         p[i] = new Point();       }       for(int i=0; i<n; i++) {         x = sc.nextInt();         y = sc.nextInt();         p[i] = new Point(x,y);       }       //凸多边形       boolean tag = true;       int j,k,t;       for(int i=0; i<n; i++) {         //k,t直接对n求余就行了         j = i;         k = i+1;         t = i+2;         //以三角形为例看看         if(k==n) {           k = 0;         }         if(t==n+1) {           t = 1;         }         if(t==n) {           t = 0;         }         //注意是后面减去前面的         Point p1 = new Point(p[k].x - p[j].x,             p[k].y - p[j].y);         Point p2 = new Point(p[t].x - p[k].x,             p[t].y - p[k].y);         //叉积         int ans = p1.x*p2.y - p1.y*p2.x;         if(ans<0) {           tag = false;           break;         }       }       if(tag) {         System.out.println("convex");       }else {         System.out.println("concave");       }     }   } } class Point {   int x;   int y;   public Point() {     this.x = 0;     this.y = 0;   }   public Point(int x, int y) {     this.x = x;     this.y = y;   } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部