1.2算法入门之借书方案

本文探讨了小明借书给三个小朋友的不同借法问题,通过数学排列组合的方法解决了实际问题,展示了穷举法在解决此类问题上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 . 问题描述

小明有5本新书,要借给A,B,C这3个小朋友,若每次只能借1本,则可以多少不同的借法?

二. 问题分析

本题属于数学的排列组合问题,给5本书进行编号,即求3个不同数字的排列组合总数,将5本书编号,A,B,C3人每次可以从5本书选择1本,即为5种选择,现在条件为1本书只能借给一个人,

三. 算法设计

采用穷举法 a<5,b<5,c<5


#include<stdio.h>

//方式一:穷举法

//效率地,要循环21X34X101=72114次;

//穷举法

intmain(intargc,constchar* argv[]) {

// insert code here...

staticinti=0;

staticintj=0;

inta,b,c ;

for(a=1; a<=5;a++)

{

for(b=1;b<=5; b++)

{

for(c=1; c<=5; c++)

{

if(a!=b&&b!=c&&c!=a)

{

printf("A:%dB:%dC:%d ",a,b,c);

j++;

if(j%4==0) {

printf("\n");

}

}

i++;

//循环执行了125

// printf("i=%d",i);

}

}

}

return0;

}

#endif




intmain(intargc,constchar* argv[]) {

// insert code here...

staticinti=0;

staticintj=0;

inta,b,c ;

for(a=1; a<=5;a++)

{

for(b=1;b<=5; b++)

{

//虽然也是三层循环,但加了一个判断a!=b,在进入循环体,可以减少循环的次数

for(c=1; c<=5&&a!=b; c++)

{

if(b!=c&&c!=a)

{

printf("A:%dB:%dC:%d ",a,b,c);

j++;

if(j%4==0) {

printf("\n");

}

}

i++;

//循环执行了100

//printf("i=%d",i);

}

}

}

return0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值