Java算法(二)

一、水仙花数

水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:370=33+73+00;371=33+73+13,370、371就是一个水仙花数。

(一)判断一个数是否是水仙花数:

代码如下:

public class Demo05 {
    public static void main(String[] args) {
    System.out.println("算法:水仙花数\n");
    int b1,b2,b3=0;
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个三位数:");
        int x=sc.nextInt();
        b1=x/100;
        b2=(x/10)%10;
        b3=x%10;
        if(b1*b1*b1+b2*b2*b2+b3*b3*b3==x){
            System.out.println(+x+"是水仙花数!");
        }
        else{
            System.out.println(+x+"不是水仙花数!");
        }
    }
}

(二)输出100~999之间的所有水仙花数

代码如下:

public class Demo06 {
    public static void main(String[] args) {
        int b1,b2,b3=0;
        for(int i=100;i<=999;i++){
            b1=i/100;
            b2=(i/10)%10;
            b3=i%10;
            if(b1*b1*b1+b2*b2*b2+b3*b3*b3==i){
                System.out.println(+i+"是水仙花数!");
            }
        }
    }
}

二、斐波那契序列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、…… ——————来自百度
其规律很明显,从第3个数开始,每个数都等于它前两个数的和。
代码如下:

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

    public static void main(String[] args) {
      System.out.println("斐波那契数列的前20项:");
      for(int j=1;j<=20;j++){
          System.out.println(getFib(j)+"\t");
      }

        }
}

一个菜鸟的算法 如有优化,欢迎评论交流

上一篇:git 切换分支时会把未add或未commit的内容带过去


下一篇:matlab练习程序(B样条反算控制点)