前几天参加了网易的校招笔试,编程题总共有三道题,前两道难度较低,最后一道难度较高。在这里跟大家一起分享一下。
第一题:
2.思路
这道题解答的基本思路是现将输入元素进行排序,然后验证相邻两个元素的差是否都相等。如果都相等,则“Possible”,否则“Impossible”。
3.代码实现
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int numLength = Integer.parseInt(in.nextLine());
String inputNums = in.nextLine();
String[] nums = inputNums.split(" ");
int[] intNums = new int[nums.length];
for (int i=0; i < nums.length; i++) {
intNums[i] = Integer.parseInt(nums[i]);
}
Arrays.sort(intNums);
if(intNums.length <= 2) {
System.out.println("Possible");
return;
}
int old = intNums[1] - intNums[0];
for(int j=0; j1; j++) {
int newInt = intNums[j+1] - intNums[j];
if(newInt != old) {
System.out.println("Impossible");
return;
}
}
System.out.println("Possible");
}
}
}
第二题:
2.思路
这道题我的思路是首先检查小易拥有的d元钱是否够f天的房租,如果不够,那么他可以独立生活的天数就是d/x天。否则,他可以独立生活的天数就是(d-f*x)/(x+p)+f天。
3.代码实现
import java.util.Scanner;
public class Testw2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int x = in.nextInt();
int f = in.nextInt();
int d = in.nextInt();
int p = in.nextInt();
if(d - f*x < 0) {
System.out.println(d/x);
return;
}
int days = (d-f*x)/(x+p);
System.out.println(days + f);
}
}
}
第三题:
由于本人比较渣,第三道题暂时还没有好的解决方法,所以讲题目放在这里,供大家查看,如果哪位大神有解决方法,还望指教。
总结:希望这个分享可以给你带来一点帮助,也希望解决了最后一题的大神赐教,不胜感激!