h5算法题目集

本文通过JavaScript实现了一系列算法题目,包括小球落地距离计算、斐波那契数列求和、辗转相除法求最大公约数、兔子产子问题、猴子摘桃问题以及递归求解阶乘等。通过这些实例展示了累加和递推算法的应用,同时也探讨了穷举法和递归在解决问题时的特点和适用场景。
摘要由CSDN通过智能技术生成

累加

第一个:小球从100米高空落下,每次都会跳到原来的一半高度,问20次落地时小球走过的距离。

var sum=0;
var arr=[i];
arr[0]=100;
for(var i=0;i<20;i++){
    var sum=sum+arr[i]*2;
    arr[i+1]=arr[i]/2;
}
var res=sum-arr[0];
document.write(res);

 

计算斐波那契数列(1/2 2/3 3/5 5/6…….)的前20 项之和。

var arr=[];
arr[0]=1;arr[1]=2;
var sum=0;
for(var i=0;i<=20;i++ ){
    sum=sum+(arr[i]/arr[i+1]);
    arr[i+2]=arr[i+1]+arr[i];
}
document.write(sum);

 

累加/乘算法的一般形式:

V += e

V *=e

算法要点:

(1)初始化

v =0; 累加

v =1; 累乘

E的每一项的初始化,可能会比较复杂,小球的初始化就是一个高度,数列分为分子和分母。圆周率的还有符号

(2)循环控制的条件

从题目中去获取,可能是固定的循环次数,也可能是项数的要求,具体情况具体分析

(3)从当前项如何变为下一项

数列的,当前的分母变为下一项的分子,当前的分子加分母变为下一项的分母。

 

迭代法

求两个数的最大公约数

辗转相除法

用较大的数对较小的数取余数,如果余数为0,那么最大公约数就是这个较小的数,如果不为0,那么让除数变为较大的数,余数变为较小的数,继续这样下去直到余数为0

var num1=Number(prompt("请输入一个数"));
var num2=Number(prompt("请输入一个数"));
var res=maxGCD(num1,num2);
alert(res);
//函数的功能:得到两个数的最大公约数
//
名称:maxGCD
//
参数:num1num2
//
返回值:最大公约数
function maxGCD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值