正文

2005年4月25日第16期电脑报编程点将2005-09-10 20:03:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/4630.html

分享到:

2005年4月25日第16期电脑报编程点将

题目:小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?

我的程序:
/*算法思想:其实这是一个排列的问题,这里我们假设五本书的编号室从1——5,
用数组ABC[3]来表示A,B,C三个人,其数值表示这三个人所借的是什么书
(也就是哪个编号的书)。穷举使三个人都可能借到每一本书,
当然,不能两个人借同一本书。

*/
#include<iostream>
using namespace std;
void main()
{
    int ABC[3],count=0;
    for(ABC[0]=1;ABC[0]<=5;ABC[0]++)
        for(ABC[1]=1;ABC[1]<=5;ABC[1]++)
            for(ABC[2]=1;ABC[2]<=5;ABC[2]++)
                if(ABC[0]!=ABC[1]&&ABC[0]!=ABC[2]&&ABC[1]!=ABC[2])
                    count++;
    cout<<"总的借书方式有:"<<count<<"种"<<endl;
}


扩展:在每一种可能的借法,输出ABC三位读者分别借到的书的编号:

#include<iostream>
using namespace std;
void main()
{
    int ABC[3],count=0;
    for(ABC[0]=1;ABC[0]<=5;ABC[0]++)
        for(ABC[1]=1;ABC[1]<=5;ABC[1]++)
            for(ABC[2]=1;ABC[2]<=5;ABC[2]++)
                if(ABC[0]!=ABC[1]&&ABC[0]!=ABC[2]&&ABC[1]!=ABC[2])
                {
                    count++;
                    cout<<"第"<<count<<"种借法中ABC所借的书的编号分别是:"
                        <<ABC[0]<<" "<<ABC[1]<<" "<<ABC[2]<<"\n";
                }
                        cout<<"总的借书方式有:"<<count<<"种"<<endl;
}



阅读(4006) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册