京东抛小球
抛小球
http://www.nowcoder.com/questionTerminal/ae45a1d8bc1d43858c83762fe8c2802c
思路
这题说距离都是整数,是说最终距离总和是整数,由于double的精度问题,不断除2,double最终会成为0
用double写个递归,再转为整数。
递归
import java.util.*; public class Balls { public double cal(double A){ if(A<=0){return 0;} double a=A*2; return a+cal(A/2); } public int calcDistance(int A, int B, int C, int D) { double a=A; double b=B; double c=C; double d=D; return (int) (A+cal(a/2)+B+cal(b/2)+C+cal(c/2)+D+cal(d/2)); } }
数学方法 等比数列求和
public int calcDistance(int A, int B, int C, int D) { return 3* (A+B+C+D); }