【项目1-小明借书】
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
提示:本问题实际上是一个排列问题,即求从5个中取3个进行排列的方法的总数。首先对五本书从1至5进行编号,然后使用穷举的方法。假设三个人分别借这五本书中的一本,当三个人所借的书的编号都不相同时,就是满足题意的一种借阅方法。
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
提示:本问题实际上是一个排列问题,即求从5个中取3个进行排列的方法的总数。首先对五本书从1至5进行编号,然后使用穷举的方法。假设三个人分别借这五本书中的一本,当三个人所借的书的编号都不相同时,就是满足题意的一种借阅方法。
[参考解答]
#include <stdio.h> int main() { int a,b,c,count=0; printf("小明借书给三位小朋友书的方案有:\n"); for(a=1; a<=5; a++) //穷举a借5本书中的1本的全部情况 for(b=1; b<=5; b++) //穷举b借5本书中的一本的全部情况 for(c=1; c<=5; c++) //穷举c借5本书中的1本的全部情况 if(a!=b&&c!=a&&c!=b) //判断三个人借的书是否不同,(a-b)*(b-c)*(c-a)!=0更好 { ++count; printf("%d: %d, %d, %d\n", count, a, b, c);//输出方案 } return 0; }