java 常见算法

/**斐波那契数列
     * 它的第一项和第二项均为1,以后各项都为前两项之和
     * @param scNum
     */
    private static void shulie() {
        System.out.println("请输入数列个数:");
        Scanner sc=new Scanner(System.in);
        String nextLine = sc.nextLine();
        int scNum = Integer.parseInt(nextLine);
        
        if(scNum==1) {
            System.out.println(scNum);
            return;
        }else if(scNum==2){
            System.out.println("  "+scNum+"  "+scNum);
            return;
        }
        int sum1=1;int sum2=1;
        for(int i=1;i<=scNum;i++) {
            if(i==1) {
                System.out.print(" "+1+" ");
                continue;
            }else if(i==2){
                System.out.print("  "+1);
                continue;
            }
            System.out.print("  "+(sum1+sum2));
            int tem=sum1;
            sum1=sum2;
            sum2=tem+sum2;
        }
    }
    
    //网上的斐波那契数列
    private static void f(int x){
        int f1=1,f2=1,i=3;
        if(x==1)System.out.print(f1);
        if(x==2)System.out.print(f1+"  "+f2);
        if(x>=3){                 //求位置大于三的数列
            System.out.print(f1+"  "+f2);
            while(x>=i){         //求数列
                f1=f2+f1;        //求两项之和
                System.out.print("  "+f1);
                i++;
                f2=f2+f1;
                System.out.print("  "+f2);                
            }
        }  
    }


    //百元买百鸡
    public void maiJi() {
        int aPrice=5;int bPrice=3;
        for(int i=0;i<100;i++) {
            for(int j=0;j<100;j++) {
                int m1=i*aPrice;
                int m2=j*bPrice;
                int k=(100-m1-m2)*3;
                if((k+i+j)==100) {
                    System.out.println("公鸡的数量:"+i+",母鸡的数量:"+j+",小鸡的数量:"+k);
                }
            
            }
        }
    }
    
    //韩信点兵
    public void dianBing() {
        for(int i=0;i<100;i++) {
            int t1=(i-1)%3;
            int t2=(i+2)%7;
            int t3=i%5;
            if(t1==0 && t2==0 && t3==0) {
                System.out.println("韩信一共点兵:"+i+"人。");
            }
        }
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值