阿里 3.4 研发笔试 Java题解
对不住各位 最近两天面试忙 这周抽时间再更吧 一定更详细点
首先看第一道题,是一个晶体,这个就是一个找规律题,最后进行等差数列的求和。
import java.util.Scanner;
public class num1 {
public static int getSum(int a, int b){
if(a == 0 || b == 0){
return 0;
}
//等差求和
return ((b+1)+(a-2)*(1+b)*b/2);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int res = 0;
int arr[][] = new int[n][2];
for(int i = 0; i < n; i++){
int a = sc.nextInt();
int b = sc.nextInt();
arr[i][0] = a;
arr[i][1] = b;
res += getSum(arr[i][0],arr[i][1]);
}
System.out.println(res);
}
} 运行结果:正确 对于第二题:
先看下题目:
牛牛在纸上画了一个正n边形,他想知道多边形中等腰锐角三角形的数量。(三角形的顶点要在多边形的顶点上),不同的三角形的定义:两个三角形,只要有一个点不在同一个位置上就算做不同的三角形。
等腰锐角三角形的定义:顶角是锐角的等腰三角形被成为等腰锐角三角形。
这里要求的是等腰锐角三角形,我们要注意把直角的情况和钝角的情况都去掉。
下面放Java代码:
public class num2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
long eve_num = (long) Math.floor((N-1)/2); //这里表示一个点出发的等腰三角形数
//然后我们对这些等腰三角形中的钝角三角形去除
long dun = (long) Math.floor(eve_num/2);
eve_num = eve_num-dun;
long sum = eve_num * N; //总数
//判断特殊情况
if (N % 4 == 0){ //为4的时候
sum = sum - N;
}
if (N % 3 == 0){ //为3的时候
sum = sum - (N/3)*2;
}
System.out.println(sum);
}
} 对于第三题:
扫雷题 下次玩扫雷我就不用鼠标点 我就写代码 哎就是玩儿~~ 虽然写不出来hhhhhha。
先看下题目:
样例输入:
. 1 2 1
. . . .
. . . .
. . . .
样例输出:
O1 2 1
OXOX
. . . .
. . . .
对于这道题的话,对于每一个位置来说,要保证它没雷
我这会先去笔试同花顺了友友们~~~~ 笔试完了更
3.9更
#阿里巴巴笔试##笔试题目##阿里巴巴#
查看27道真题和解析