1.2 借书方案知多少
第一部曲:题目要求五本书借给三个人,同一本书不能借给两个人,人之间有区别,所以就是排列A53。可以想到利用三重循环寻找所有的可能性,第一个人的选择不受限制,第二个人的选择受到第一个人选择的限制,最后一个人的选择受到前面两个人选择的限制。注意最后输出可能性的时候,要进行判断是否有重复的。
第二部曲:
第三部曲:int a,b,c; 三层for循环 判断是否满足条件,三个人借的书都不相同,然后按格式输出 printf(),循环结束后输出方案总数。
第四部曲:
#include<iostream>
using namespace std;
int main()
{
int a,b,c,cnt=0;
for(a=1;a<=5;a++)
{
for(b=1;b<=5;b++)
{
for(c=1;c<=5;c++)
{
if(a!=b&&a!=c&&b!=c)
{
printf("A:%2d B:%2d C:%2d",a,b,c);
cnt++;
if(cnt%4==0)
cout<<endl;
}
}
}
}
printf("共有%d种有效的借阅方法\n",cnt);
return 0;
}
优化代码:在进入第三层循环前判断是否满足a不等b,减少第三层循环的次数。
#include<iostream>
using namespace std;
int main()
{
int a,b,c,cnt=0;
for(a=1;a<=5;a++)
{
for(b=1;b<=5;b++)
{
for(c=1;c<=5&&a!=b;c++)
{
if(a!=c&&b!=c)
{
printf("A:%2d B:%2d C:%2d",a,b,c);
cnt++;
if(cnt%4==0)
cout<<endl;
}
}
}
}
printf("共有%d种有效的借阅方法\n",cnt);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统