算法
什么是算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
简单说
算法就是把一个问题,拆解为计算机能够一步步执行的步骤.
计算机的流程控制语句:顺序执行、选择语句、循环语句
优秀算法的要求
正确性
健壮性
可读性
伪代码
计算1+2+3+4+…+99+100
定义变量sum
从1到100遍历数字 , 用 i 表示 把每个数字i加到sum中打印显示sum
for(let i = 1;i <= 100; i++){
document.write(i + "<br>"); // 1 2 3 100
}
算法如何培养?
多敲、多练、多总结
经典的业务需求场景要熟记心间
累加器和累乘器
累加器题目
<script>
// 由用户输入数字n 计算3/2 + 4/3 + 5/4 + ... +(n+1)/n的结果
//用户输入数字n
let n = Number(prompt("请输入数字n"));
// 累加器
let sum = 0;
// 遍历分母就可以了 , 因为分母就是分子 + 1
for (let i = 2; i <= n; i++) {
sum += (i + 1) / i;
}
alert(sum.toFixed(2));
//toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
//输入5 === > 5.28 ====> 3/2 + 4/3 + 5/4 + 6/5
</script>
累乘器题目
由用户输入数字n,请计算n的阶乘
6的阶乘 ===> 6 * 5 * 4 * 3 * 2 * 1
// 计算阶乘
//用户输入数字n
let n = Number(prompt("请输入一个数字"));
//累乘器 一定注意 累乘器要从1开始 , 因为如果从0开始,0乘以任何数字都是0
let result = 1;
for(let i = n; i >= 1; i--){
result *= i;
}
// for(let i = 1; i <= n; i++){
// result *= i;
// }
//显示结果
alert(result);
同时用到累加器和累乘器
[面试题]圆周率π可以由下面的莱布尼茨级数公式计算出来,请由用户输入参数n,计算圆周率π
<script>
// 用莱布尼茨数估算圆周率
// π = 2 * ( 1 + 1/3 + (1*2)/(3*5) +