递归算法的使用

本文详细介绍了如何使用栈的先进后出特性,通过JavaScript实现字符串反转的算法,包括Stack类的定义和reverString函数的实现。同时涵盖了其他编程任务,如奇数和、偶数和、斐波那契数列和指数幂计算。
摘要由CSDN通过智能技术生成

反转字符串(使用栈的先进后出原则 )

function Stack() {
				this.data = []; //保存栈内元素
				this.top = 0; //保存栈顶位置
			}
			//原生链增加入栈和出栈方法
			Stack.prototype = {
				//入栈:在栈顶加入元素,元素个数+1
				push: function push(element) {
					this.data[this.top++] = element;
				},
				//出栈:先返回栈顶的元素,元素个数减1
				pop:function(){
					return this.data[--this.top];
				},
				//返回栈内元素的长度
				length: function() {
					this.top;
				}
			}
			//在栈内实现输出
			function reverString(str) {
				var s = new Stack();
				//将字符串转换成数组
				var arr = str.split('');
				//存储元素
				var result = '';
				for(var i = 0; i < arr.length; i++){
					s.push(arr[i]);
				}
				//元素出栈
				for(var i = 0; i <arr.length; i++){
					result +=s.pop(i);
				}
				return result;
			}
			var str = 'abcdefg';
			console.log(reverString(str));

10以内的奇数和、偶数和

//奇数和										//偶数和
function jsum(n){						function osum(n) {
  if(n % 2 == 0){						if (n % 2 != 0) {
   return n--;							return n--;
	}										}
   if(n == 1){								 if(n == 1){
   return 1;
   } else {									 } else {
 return n + jsum(n - 2);			 return n + jsum(n - 2);
   }										}
}										}
 console.log(jsum(5))				console.log(osum(2));

斐波那契数列

//斐波那契数列 1,1,2,3,5,8,13,21,34,55        //阶乘
function sum(n){					function s(n){
  if(n == 0|| n ==1){					if(n == 1){
      return 1;								return 1;
   }									}
  return sum(n-1) + sum(n-2);		return s(n-1) * n;	
}									}
console.log(sum(2))					console.log(s(4));

求指数幂

//求幂

function s(n,w) {
	if (w == 0) {
      return 1;
	}else {
   return s(n,w-1) * n;
	}
}
console.log(s(3,3))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值