简答题:
1. int n=1,则 ++(n++)的值是?
答案:2
2. 下面字符串最终的结果为()
String str="Hello World";
str=str.substring(3,7);
答案:str="lo W";
substring(index,end)方法中index从0开始,包前不包后。
编程题:
1.求圆上的格点数量:
给定一个rSquare,表示一个圆的半径的平方。某圆的圆心在坐标系原点,需要计算返回处在该圆圆周上的格点(横纵坐标均为整数的点)数量。
输入:
输入一个整数rSquare。rSquare的取值范围在1到2,000,000,000之间(其中包括1和2,000,000,000)
输出:
返回圆上的格点数量
举例:
rSquare = 1,返回4. 圆心在原点、半径为1的圆通过4个格点:(1,0)、(0,1)、(-1,0)和(0,-1)
编程代码如下:
public class test {
/**
* 圆的格点数
*/
public static void main(String[] args){
int m = countPoints(1);
System.out.println(m);
}
public static int countPoints(int rSquare){
int res = 0;
double r = Math.sqrt(rSquare);
double temp = 0;
for(double i=0;i<r;i++){
temp = Math.sqrt(rSquare - i*i);
if(temp-(int)temp==0){
res=res+1;
}
temp = 0;
}
return res*4;
}
}
2.最小众倍数:
给定你五个正整数,它们最小众倍数是指能够被其中至少三个数整除的最小正整数。
给定你各不相同的整型a, b, c, d以及e。请返回它们的最小众倍数。
输入:
输入五个正整数a,b,c,d,e。a, b, c, d以及e中每个的取值范围都在1和100之间(其中包括1和100)。a, b, c, d以及e各不相同
输出:
返回它们的最小众倍数
举例:
a = 1 b = 2 c = 3 d = 4 e = 5, 返回4。4能够被1,2以及4整除,满足五个数中至少能被其中三个整除的定义
编程代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class test {
/**
* 最小众倍数
*/
public static void main(String[] args) {
int[] arr = new int[5];
Scanner input = new Scanner(System.in);
for(int i=0;i<5;i++) {
arr[i] = input.nextInt();
}
int count = 0;
int result = 0;
Arrays.sort(arr);//将数组排序
for(int i = arr[2];;i++) {//最小的最小众倍数肯定是大于或等于arr[2]
count = 0;
for(int j=0;j<5;j++) {
if(i%arr[j]==0) {
count++;//每满足一次条件加1
}
}
if(count >= 3) {//如果count>=3 则满足题目条件
result = i;
break;
}
}
System.out.println(result);
}
}
3.严格递增数列:
一个严格递增数列是指每个数都严格比前一个数大的一列数。一个严格递减数列是指每个数都严格比前一个数小的一列数。一个严格单调数列是指严格递增数列或是严格递减数列。例如1, 5, 6, 10 和 9, 8, 7, 1两个数列都是严格单调数列,而 1, 5, 2, 6和 1, 2, 2, 3就不是严格单调数列。给定你一个数列seq,请找到满足严格单调定义的最长连续子数列,并返回其长度
输入:
输入一个整形数组seq。seq含有1到50个元素(其中包括1和50),seq中的每个元素的取值范围都在1和100之间(其中包括1和100
输出:
返回严格单调的最长连续子序列长度
举例:
seq: {1, 7, 7, 8, 3, 6, 7, 2},返回3. 最长的严格单调数列是3,6,7.而子数列1,3,6,7是不符合要求的,因为1和3并不相连,此外1,7,7,8也是满足条件的,因为它不是严格递增的。
编程代码如下:
public class test {
/**
* 严格递增数列
*/
public static void main(String[] args) {
int[] seq = {1, 7, 7, 8, 3, 6, 7, 2};
int result = longestMonotoneSequence(seq);
System.out.println(result);
}
public static int longestMonotoneSequence(int[] seq) {
int res=1;
int current=1;
for(int i=1;i<seq.length;i++){
if(seq[i]>seq[i-1]){
current++;
}
else{
if(current>res){
//index=i-current;
res=current;
}
current=1;
}
}
return res;
}
}