基础算法----持续更新

基础算法----持续更新

01、斐波那契
package javazoye1;
public class Zee{
	public static void main (String[] args){

		int f1=1;
		int f2=1;
		System.out.println("第1月,兔子总对数:1");
		System.out.println("第2月,兔子总对数:1");

		for(int i=3; i<12;i++) {
			int fn = f1+f2;
			f1=f2;
			f2=fn;	
			System.out.println("第几月:"+ i +",兔子总对数:"+fn);
//斐波那契数列是典型的递归算法(自己调用自己)
		}
	}
}
02、泰波那契

泰波那契序列 Tn 定义如下:

T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2

给你整数 n,请返回第 n 个泰波那契数 Tn 的值。

package leedcode;

public class Day1_01 {
	public static void main(String[] args) {
	
	}//第 N 个泰波那契数

	    public int tribonacci(int n) {
	        int[] sum = new int[38];//数组
	        sum[0]=0;sum[1]=1;sum[2]=1;
	        if(n==0)
	            return sum[n];
	        if(n==1)
	            return sum[n];
	        if(n==2)
	            return sum[n];
	        for(int i=3; i<=n; i++){
	            sum[i] = sum[i-1]+sum[i-2]+sum[i-3];
	        }
	        return sum[n];
	    }
	}
03、水仙花数
package javazoye1;

public class ShuiXianhua {
public static void main(String[] args) {
	for(int i=100;i<=999;i++) {
		int b = i /100;//取百位
		int s = i/10%10;//取十位
		int g =i % 10;//取个位
		
		if(i==b*b*b+s*s*s+g*g*g) {
			System.out.println(i+"是水仙花数。");
		}
	}
}
}
04、乘法表
package javazoye1;

public class Chengfabiao {
	public static void main(String[] args) {
		//两个变量运算,用嵌套双循环
		for(int n=1;n<=9;n++) {
		for(int i=1;i<=n;i++) {//注意i<n
		//print 不换行输出
		System.out.print(n+"*"+ i+"="+n*i+"\t");
			}
		//使换行,所以输出一个空的
 	System.out.println();
	}
}
}
05、最大公约数(辗转相除法)
package javazoye1;
import java.util.Scanner;
public class zvdagongyueshu {	
	public static void main (String[]args) {
		Scanner i =new Scanner(System.in);
		int a = i.nextInt();
		System.out.println("请输入第二个数:");

		int b =i.nextInt();
		i.close();
		int oa=a;
		int ob=b;
		while(b!=0) {     //辗转相除法
			int remainder=a%b;
			a=b;
			b=remainder;			
		}
		System.out.println(oa+"和"+ob+"的最大公约数是"+a);
		System.out.println(oa+"和"+ob+"的最小公倍数是"+oa*ob/a);
	}
}

package javazoye1;

import java.util.Scanner;

public class ZvDaGongYueShu1 {
	public static void main(String[] args) {
	//枚举法
	Scanner in=new Scanner(System.in);
	System.out.println("请输入第一个数:");
		int a=in.nextInt();
		System.out.println("请输入第二个数:");
		int b=in.nextInt();
		in.close();
		int gcd=1;
		for(int i=2;i<=a && i<=b;i++) {
			if(a%i==0 && b%i==0) {
					gcd=i;
			}
		}
		System.out.println(a+ "和 "+b+ "的最大公约数是"+gcd);
	}
}
 
06、冒泡排序
package javazoye1;

import java.util.Scanner;

//冒泡排序(从大到小)
public class Maopaopaixu1 {

	
	public static void main(String[] args) {
			Scanner sc = new Scanner (System.in);
			int n = 5;
			int a[]=new int[n];
			for(int i=0;i<n;i++) {
				a[i]=sc.nextInt();
			}
			sort(a,n);
			for(int i=0;i<n;i++) {
				System.out.print(a[i]+" ");
			}
	}
	
	public static void sort(int a[],int n){
		for(int i=1;i<=n-1;i++) {
			for(int j=0;j<n-i;j++) {
				if(a[j]<a[j+1]) {
					int t =a[j];
					a[j]=a[j+1];
					a[j+1]=t;
				}
			}
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值