面试编程题目
题目:求1+2++n,
要求不能使用乘除法、for、while、switch、case等关键字以及条件判断语句(A?B:C)。
?
看题目只能用递归解决这个问题。代码如下:
/** * 迭代计算 * @author feng * */public class Recursion {/** * 计算 n+(n-1)+(n-2)+...+1 * @param n * @return */public static int accumulation(int n){if(n==1){return 1;}else {return accumulation(n-1)+n;}}/** * 计算 n*(n-1)*(n-2)*...*1 * @param n * @return */public static long accmulationMultiplication(int n){if(n==1){return 1;}else {return accmulationMultiplication(n-1)*n;}}public static void main(String[] args) {System.out.println(Recursion.accumulation(1000));System.out.println(Recursion.accmulationMultiplication(20));}}?