借书方案知多少

来源:互联网 发布:itools不能下载软件 编辑:程序博客网 时间:2024/05/22 15:53

小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?*问题分析与算法设计本问题实际上是一个排列问题,即求从5个中取3个进行排列的方法的总数。首先对五本书从1至5进行编号,然后使用穷举的方法。假设三个人分别借这五本书中的一本,当三个人所借的书的编号都不相同时,就是满足题意的一种借阅方法。

#include <stdio.h>#include <math.h>int main(){int a,b,c,count=0;printf("There are diffrent methods for Xiao Ming to distribute books to 3 readers:\n");for(a=1;a<=5;a++)//穷举第一个人借5本书中的1本的全部情况{for(b=1;b<=5;b++)//穷举第二个人借5本书中的一本的全部情况{for(c=1;a!=b&&c<=5;c++)//当前两个人借不同的书时,穷举第三个人借5本书中的1本的全部情况{if(c!=a&&c!=b)//判断第三人与前两个人借的书是否不同{printf("%2d:%d,%d,%d\t",++count,a,b,c);//打印可能的借阅方法}}}}return 0;}


 

或者

 

#include <stdio.h>#include <math.h>void main(){int i,j,k,count=0;printf("There are diffrent methods for Xiao Ming to distribute books to 3 readers:\n");for(i=1;i<=5;i++){for(j=1;j<=5;j++){if (j!=i){for(k=1;k<=5;k++){if(k!=i&&k!=j){++count;printf("%2d:A=%d,B=%d,C=%d\t",count,i,j,k);}else continue;}}else continue;}}}

 

原创粉丝点击