素数判断及矩形交集的实现
来源:互联网 发布:php yaf导出excel表格 编辑:程序博客网 时间:2024/06/17 15:11
1、给定一个正整数n,返回1到n之间所有的素数
一般做法:
暴力枚举法:从1到n遍历,如果k是素数,则将k加入到素数的集合中。判断K是否是素数的方法,查看每一个比k小的数是否可以被k整除。
时间复杂度更低的方法,拿到一个素数,然后把该素数的倍数对应的数都删除,反复进行,直到没有可以删除的数为止。
public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); boolean isprime[]=new boolean[n+1]; for(int i=0;i<isprime.length;i++) isprime[i]=true; for(int i=2;i<n;i++) { if(isprime[i]==true) { int p=i; for(int j=2;j*p<=n;j++) { isprime[j*p]=false; } } } for(int i=2;i<n+1;i++) { if(isprime[i]) System.out.print(i+" "); } System.out.println(); }}唯一的缺陷是需要消耗内存空间。
2、判断两个矩形是否相交
在二维平面中,如果一个矩形,他的长与X轴平行,高与Y坐标轴平行,那么我们就城举行时坐标轴对齐的,这样的矩形在数据结构上,我们用他的左下角坐标(x,y)以及管w,高h来表示。给定两个坐标轴对齐的矩形,判断他们是否相交。
首先设计矩形的数据结构
public class Rectangle {public int x;public int y;public int w;public int h;public Rectangle(int x,int y,int w,int h){this.x=x;this.y=y;this.w=w;this.h=h;}}具体实现如下:
public static void main(String[] args) {// TODO Auto-generated method stubRectangle R=new Rectangle(1, 2, 3, 4);Rectangle S=new Rectangle(2, 3, 4, 5);System.out.println(is_interset(R, S));}public static boolean is_interset(Rectangle R,Rectangle S){return R.x<=S.x+S.w && S.x<=R.x+R.w && R.y<=S.y+S.h && S.y<=R.y+R.h;}
据说这道题在面试中出现的频率特别的高。。
阅读全文
0 0
- 素数判断及矩形交集的实现
- 判断两个矩形是否有交集
- 判断两个矩形是否存在交集
- 判断两个矩形是否有交集
- 如何判断两个矩形是否存在交集
- 求矩形交集的面积
- 求矩形交集的面积
- Java实现素数的判断
- vc 如何判断2个矩形是否有交集
- vc 如何判断2个矩形是否有交集
- C语言-判断线段是否与矩形范围有交集
- 素数的判断及初步优化
- 素数的实现,质数,判断一个数是不是素数
- 判断101-200之间有多少个素数,并输出所有素数及素数的个数
- 如何求两个向交矩形的交集的面积?
- 如何求两个向交矩形的交集的面积?
- 矩形交集和并集的面积-离散化
- cocos2d-x中请求两个矩形的交集
- UART总结
- 文字相似度算法
- Method之invoke()方法的使用
- vue-router路由(一)
- 5 个 Laravel Eloquent 小技巧
- 素数判断及矩形交集的实现
- linux驱动 之 module_init解析 (上)
- 15.3Sum
- OC语言中的标记#pragma mark 在swift中标记方法
- Transaction rolled back because it has been marked as rollback-only
- SqlServer with递归查询的使用
- mtk-[FAQ20206]如何使用adb command来设置cpu频率 和核数
- solr6.6教程-基础环境搭建(二)
- 小结