这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战
🌲本文收录于专栏《Java入门练习100例》——试用于学完「Java基础语法」后的巩固提高及「LeetCode刷题」前的小试牛刀。
作者其它优质专栏推荐:
点赞再看,养成习惯。微信搜索【一条coding】关注这个在互联网摸爬滚打的程序员。
本文收录于技术专家修炼,里面有我的学习路线、系列文章、面试题库、自学资料、电子书等。欢迎star⭐️
题目描述
难度:简单
计算 1 + 1/2! + 1/3! + 1/4! + ... + 1/20! 的值。
知识点
- 循环结构
- 阶乘的计算
- 初窥动态规划
解题思路
1.循环结构
观察算式的规律,从1-20,每次加1,循环20次。
2.阶乘的计算
n!
是为阶乘,等于1*2*3*4...(n-1)*n
3.初窥动态规划
动态规划,一直是算法中的难点,本次不做深度讲解,通俗的说一下。
就是把复杂问题简单化,比如4 的阶乘可以看到3 的阶乘再乘4,而3的阶乘可以看做2的阶乘再乘3,2的阶乘等于1乘2。
其实就是这样一个思想,可以看下leetcode《爬楼梯》这道题。
代码实现
/**
* 计算 1 + 1/2! + 1/3! + 1/4! + + 1/20! 的值
*/
public class question_06 {
public static void main(String args[]) {
double sum=0,a=1;
int i=1;
while(i<=20) {
sum=sum+a;
i=i+1;
//关键点,动态规划思想
a=a*(1.0/i);
}
System.out.println("sum="+sum);
}
}
输出结果
总结
上一节的问题:什么时候用for
?什么时候用while
?
答:其实两者区别不大,大多数情况都可以解决问题。只需记住一点:循环次数未知时用while。
最后
独脚难行,孤掌难鸣,一个人的力量终究是有限的,一个人的旅途也注定是孤独的。当你定好计划,怀着满腔热血准备出发的时候,一定要找个伙伴,和唐僧西天取经一样,师徒四人团结一心才能通过九九八十一难。 所以,
如果你想学好Java
想进大厂
想拿高薪
想有一群志同道合的伙伴
请加入技术交流