口试编程题目
面试编程题目
题目:求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)); } }