java递归面试题

本文介绍了三个使用递归算法解决的经典问题:斐波那契数列的计算、回文字符串的判断以及将整数分解为质因数。通过具体的Java代码示例详细展示了递归算法的设计思路及实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<pre code_snippet_id="430766" snippet_file_name="blog_20140719_1_8994421" name="code" class="java">题目1:斐波那契数列 

一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。

public static int getFabonacciSequenceByNum(int num){
		//exit
		if(num ==1||num ==2){
			return 1;
		}
		//logic 
		return getFabonacciSequenceByNum(num-2)+getFabonacciSequenceByNum(num-1);
	}

题目2:回文判断

递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)

//从0开始
	public static boolean isHuiWen(String str,int index){
		//exit
		if(index>str.length()/2-1){
			return true;
		}
		
		if(str.charAt(index) == str.charAt(str.length()-1-index)){
			return isHuiWen(str,index+1);
		}else {
			return false;
		}
	}

题目3: 华为上机题

分解成质因数(如435234=251*17*17*3*2)

	public static void dividePrimeToFactors(int num , int factor){
		//exit
        if(factor>num){
        	return;
        }
		while((factor<num) && (num%factor!=0)){
			factor++;
		}
		System.out.print(factor+" ");
		num = num/factor;
		dividePrimeToFactors(num,factor);
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值