M面经Prepare: Find integer Average of 2 integers.

The definition of integer average is the highest smaller integer if average is floating point number. Also the condition if that they can not use any typecasting or any datatype other than int.

Example: a = 4, b = 5, avg = 4 a = 4, b = 6, avg = 5 a = -4, b = -6, avg = -5 a = 4, b = -5, avg = -1 a = -4, b = -5, avg = -5

-9%2 == -1 不是1, 所以负数%2==1不是奇数判定标准。但是偶数标准仍是%2 == 0

 1 package FindIntegerAverage;
 2 
 3 public class Solution {
 4     public int aver(int a, int b) {
 5         if ((a+b)%2 == 0)return (int)(a+b)/2;
 6         else return (int)(a+b-1)/2;
 7     }
 8 
 9     /**
10      * @param args
11      */
12     public static void main(String[] args) {
13         // TODO Auto-generated method stub
14         Solution sol = new Solution();
15         int res = sol.aver(-4, -5);
16         System.out.print(res);
17     }
18 
19 }
原文地址:https://www.cnblogs.com/EdwardLiu/p/5192310.html