阿里 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更
#阿里巴巴笔试##笔试题目##阿里巴巴#