java实现常见的编程题

斐波拉契数列

package org.xx.demo3;

public class TestFebonacci {

	public static void main(String[] args) {
		//斐波拉契数列 1 1 2 3 5 
		int result = febonacci(5);
		System.out.println();

	}
	
	public static int febonacci(int n){
		if (n==1|n==2) {     
			return 1;
		}else{
			return febonacci(n-1)+febonacci(n-2);
		}
	}
}

汉诺塔

package org.xx.demo3;

public class TestHanoi {
	public static void main(String[] args){
		hanoi(3, 'A', 'B', 'C');
	}
	/**
	 * 
	 * @param n 共有几个圆环
	 * @param from 第一个圆柱
	 * @param in 第二个圆柱
	 * @param to 第三个圆柱
	 */
	public static void hanoi(int n,char from,char in,char to){
		//只有一个圆环的情况下
		if (n==1) {
			System.out.println("第1个圆环从"+from+"移动到"+to);
		//无论有多少个圆环,都认为只有两个圆环,最下面的圆环和它上面的圆环
		}else{
			//先移动上面的所有圆环到中间圆柱
			hanoi(n-1, from, to, in);
			//再移动第N个圆环到第三个圆柱
			System.out.println("第"+n+"个圆环从"+from+"移动到"+to);
			//再将中间的圆环移动到第三个圆柱
			hanoi(n-1, in, from, to);
		}
	}
}

二分查找

package org.xx.demo1;
public class BinarySearch {
	public static void main(String[] args) {
		int[] arr = new int[]{1,2,3,4,5,6,7,8};
		//开始位置
		int begin = 0;
		//结束位置
		int end = arr.length-1;
		//中间位置
		int mid = (begin+end)/2;
		//目标值
		int target = 4;
		//结果索引值
		int index=-1;	
		//循环查找
		while(true){
			//先判断元素是否存在于数组中
			if (target<arr[begin]||target>arr[end]) {
				break;
			}
			if (target==arr[mid]) {
				index=mid;
				break;
			}else{
				if (target<arr[mid]) {
					end=mid-1;
				}else{
					begin=mid+1;
				}
				mid=(begin+end)/2;
			}
		}
		System.out.println("结果索引值为:"+index);
	}
}

常见Java面试题大全的程序面试程序,很有影响力的哦!好好珍惜这个资料吧!有Java常见面试题的冒泡,常见的算法,继承,多态 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值