算法初级_Question2_借书方案知多少(java实现)

这篇文章讲述的是算法初级部分的借书方案知多少问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的《c语言趣味编程1000例》,如有错误或者不当之处,还望各位大神批评指正。

问题描述

假设有5本书,要借给A,B,C三个人,若每人每次只能借一本,则可以有几种不同的借法?

算法分析

假设1-5的序号对应5本书,三层循环对应A,B,C所借走的书,A,B,C的取值范围都为1-5 若 !=B && B!=C && A!=C,则为有效借书方法 。

代码实现

public class Q2_Book {
    /**
     * 问题描述:假设有5本书,要借给A,B,C三个人,若每人每次只能借一本,则可以有几种不同的借法?
     * 
     * 算法思想:假设1-5的序号对应5本书,三层循环对应A,B,C所借走的书,
     *           A,B,C的取值范围都为1-5
     *           若A!=B && B!=C && A!=C,则为有效借书方法 
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //穷举法:时间复杂度(N*N*N)
        int A , B , C ;
        int sum = 0 ; //统计一共有多少种借法
        for( A=1 ; A<=5 ; A++)
            for( B=1 ; B<=5 ; B++)
                for( C=1 ; C<=5 ; C++){
                    if(A!=B && B!=C && A!=C){ 
                        System.out.print("A借:" + A + " B借:" + B + " C借:" + C+";    ");
                        sum++ ;
                        if(sum%5 == 0)
                            System.out.println("");
                        if(sum%25 == 0)
                            System.out.println();
                    }
                }
        System.out.println();
        System.out.println("共有:" + sum + "种借法");
    }

}

样例输出

A借:1 B借:2 C借:3;    A借:1 B借:2 C借:4;    A借:1 B借:2 C借:5;    A借:1 B借:3 C借:2;    A借:1 B借:3 C借:4;    
A借:1 B借:3 C借:5;    A借:1 B借:4 C借:2;    A借:1 B借:4 C借:3;    A借:1 B借:4 C借:5;    A借:1 B借:5 C借:2;    
A借:1 B借:5 C借:3;    A借:1 B借:5 C借:4;    A借:2 B借:1 C借:3;    A借:2 B借:1 C借:4;    A借:2 B借:1 C借:5;    
A借:2 B借:3 C借:1;    A借:2 B借:3 C借:4;    A借:2 B借:3 C借:5;    A借:2 B借:4 C借:1;    A借:2 B借:4 C借:3;    
A借:2 B借:4 C借:5;    A借:2 B借:5 C借:1;    A借:2 B借:5 C借:3;    A借:2 B借:5 C借:4;    A借:3 B借:1 C借:2;    

A借:3 B借:1 C借:4;    A借:3 B借:1 C借:5;    A借:3 B借:2 C借:1;    A借:3 B借:2 C借:4;    A借:3 B借:2 C借:5;    
A借:3 B借:4 C借:1;    A借:3 B借:4 C借:2;    A借:3 B借:4 C借:5;    A借:3 B借:5 C借:1;    A借:3 B借:5 C借:2;    
A借:3 B借:5 C借:4;    A借:4 B借:1 C借:2;    A借:4 B借:1 C借:3;    A借:4 B借:1 C借:5;    A借:4 B借:2 C借:1;    
A借:4 B借:2 C借:3;    A借:4 B借:2 C借:5;    A借:4 B借:3 C借:1;    A借:4 B借:3 C借:2;    A借:4 B借:3 C借:5;    
A借:4 B借:5 C借:1;    A借:4 B借:5 C借:2;    A借:4 B借:5 C借:3;    A借:5 B借:1 C借:2;    A借:5 B借:1 C借:3;    

A借:5 B借:1 C借:4;    A借:5 B借:2 C借:1;    A借:5 B借:2 C借:3;    A借:5 B借:2 C借:4;    A借:5 B借:3 C借:1;    
A借:5 B借:3 C借:2;    A借:5 B借:3 C借:4;    A借:5 B借:4 C借:1;    A借:5 B借:4 C借:2;    A借:5 B借:4 C借:3;    

共有:60种借法

猜你喜欢

转载自blog.csdn.net/u013634252/article/details/80813349
今日推荐