初级系列2.借书方案问题
借书方案
问题描述
小明有五本新书,要借给A B C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
问题分析
属于排列组合问题,即求从5个数中取三个不同数的排列组合的总数
|--将五本书从1 - 5进行编号,A B C三个人每次都可以从5本书中任选1本,即每人都有5种选择,由于1本书不可能同时借给一个以上的人因此只要这三个人所选书的编号不同,即一次有效的借阅方法
算法设计
穷举法, 三重循环
#include <stdio.h>
int main(void)
{
int a,b, c, i = 0; /* !< a,b,c分别用来记录三个人所选新书编号,i用来控制有效借阅次数*/
printf("A,B,C三人所选书号分别为:\n");
for (a = 1; a <= 5; a++) { /* !< 用来控制A借阅图书编号*/
for (b = 1; b <= 5; b++) { /* !< 用来控制B借阅图书编号*/
for (c = 1; c <= 5; c++) { /* !< 用来控制C借阅图书编号*/
if (a != b && a != c && c != b) { /*此条件用来控制有效借阅组合*/
printf("A:%2d B:%2d C:%2d ", a, b, c);
i++;
if (i % 4 == 0) { /*每行最多输出4种借阅方法组合*/
printf("\n"); /*输出有效的借阅方法总数*/
}
}
}
}
}
printf("共有%d种有效借阅方法\n", i);
}
#!/usr/bin/python3
i = 0
for a in range(1, 6):
for b in range(1, 6):
for c in range(1, 6):
if a != b and a != c and b != c:
print("a, b, c", a, b, c)
i += 1
print("have methods: i", i)
/* !< output */
a, b, c 1 2 3
a, b, c 1 2 4
a, b, c 1 2 5
a, b, c 1 3 2
a, b, c 1 3 4
a, b, c 1 3 5
a, b, c 1 4 2
a, b, c 1 4 3
a, b, c 1 4 5
a, b, c 1 5 2
a, b, c 1 5 3
a, b, c 1 5 4
a, b, c 2 1 3
a, b, c 2 1 4
a, b, c 2 1 5
a, b, c 2 3 1
a, b, c 2 3 4
a, b, c 2 3 5
a, b, c 2 4 1
a, b, c 2 4 3
a, b, c 2 4 5
a, b, c 2 5 1
a, b, c 2 5 3
a, b, c 2 5 4
a, b, c 3 1 2
a, b, c 3 1 4
a, b, c 3 1 5
a, b, c 3 2 1
a, b, c 3 2 4
a, b, c 3 2 5
a, b, c 3 4 1
a, b, c 3 4 2
a, b, c 3 4 5
a, b, c 3 5 1
a, b, c 3 5 2
a, b, c 3 5 4
a, b, c 4 1 2
a, b, c 4 1 3
a, b, c 4 1 5
a, b, c 4 2 1
a, b, c 4 2 3
a, b, c 4 2 5
a, b, c 4 3 1
a, b, c 4 3 2
a, b, c 4 3 5
a, b, c 4 5 1
a, b, c 4 5 2
a, b, c 4 5 3
a, b, c 5 1 2
a, b, c 5 1 3
a, b, c 5 1 4
a, b, c 5 2 1
a, b, c 5 2 3
a, b, c 5 2 4
a, b, c 5 3 1
a, b, c 5 3 2
a, b, c 5 3 4
a, b, c 5 4 1
a, b, c 5 4 2
a, b, c 5 4 3
have methods: i 60
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!