解法一:直接累加1到100,涉及100次加法运算。解法二:利用数学公式快速计算,一次加法、一次乘法、一次除法,共3次运算。解法二明显更高效,运算次数减少,提高效率。需求二:计算10的阶乘 解法一:递归实现,最多需要在栈内存开辟10块内存,执行10次。解法二:使用循环,仅在栈内存开辟一次内存执行。解法...
递归:public int f(int n){ if(n == 1){ return 1; }else if(n == 2){ return 3; }else{ return f(n-2) + f(n -1); }}//调用f(100);for循环:public int f(int n){ int sum = 0; for(int i = 1 ; i
需求1:计算1到100的和方法一:直接执行100次加法,定义两个整型变量,执行加法运算并打印结果。方法二:进行一次加法、一次乘法、一次除法,同样定义两个整型变量,执行较少的运算次数,打印结果。显然,方法二在执行时间和资源消耗上更为高效。需求2:计算10的阶乘方法一:通过递归实现,函数调用自身10次...
System.out.println(IntStream.range(1, 101).reduce(0,(left,right)->left+right));问题提出的时候是2015年,JDK8一年半前就发布了(2014年4月),不要总用过时的思维去编码
通过递归调用,我们最终可以得到数列中任意一项的值。在主函数中,我们传入28作为参数,调用getNumber方法,输出结果为:第28位的值是:14930352 因此,数列中第28位的值是14930352。代码:public class Main { public static void main(String[] args) { int n = 28;long result = getNumber(n);Sy...