1 package com.rui.test;
2
3 import java.util.Random;
4
5 /**
6 * @author poseidon
7 * @version 1.0
8 * @date:2015年10月25日 上午11:12:24
9 * @description: 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果
10 * 陷阱:
11 * 1.循环需要倒着写,为什么?
12 * 想想顺着写循环的结果,第一个元素的值会发生变化后面再除就会有问题
13 * 2.需要考虑除数为零的边界
14 * 考察:
15 * 面试者的思维、分析、编程的能力
16 * 小结:
17 * 题目不难,但是可以看出编程过程中思考问题的全面性,以及防止异常的发生,保障程序的健壮
18 * 来源:
19 * 《编程之美》
20 *
21 */
22 public class Function {
23
24 public static void main(String[] args) {
25 int[] arr = getRadom(10,100);
26 int len = arr.length;
27 System.out.println("遍历前-->");
28 for(int i=0;i<len;i++){
29 System.out.print(arr[i]+",");
30 }
31 if(arr[0] !=0){
32 for(int i=len-1;i>=0;i--){
33 arr[i] /= arr[0];
34 }
35 System.out.println();
36 System.out.println("遍历后-->");
37 for(int i=0;i<len;i++){
38 System.out.print(arr[i]+",");
39 }
40 }else{
41 System.out.println("除数不能为零");
42 }
43 }
44
45 /**
46 * 获取随机数组:长度为len,范围0-num
47 */
48 public static int[] getRadom(int len,int num) {
49 int[] arr = new int[len];
50 for(int i=0;i<len;i++){
51 Random random = new Random();
52 arr[i] = random.nextInt(num);
53 }
54 return arr;
55 }
56
57
58 }