1.2算法入门之借书方案
来源:互联网 发布:python零基础入门pdf 编辑:程序博客网 时间:2024/05/29 19:27
一 . 问题描述
小明有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次;
//穷举法
int main(int argc, const char * argv[]) {
// insert code here...
static int i=0;
static int j=0;
int a,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);
}
}
}
return 0;
}
#endif
int main(int argc, const char * argv[]) {
// insert code here...
static int i=0;
static int j=0;
int a,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);
}
}
}
return 0;
}
- 1.2算法入门之借书方案
- 1.7算法入门之最佳存款方案
- c程序基本算法百例之八—借书方案知多少
- 算法入门之KMP
- 算法入门之DFS
- 算法入门之BFS
- 算法入门之蚂蚁
- cas 入门之十三:ticket 存储方案之简介
- cas 入门之十三:ticket 存储方案之简介
- 算法入门之插入排序
- 算法入门之Trie树
- 算法入门之AC自动机
- 算法入门之移动雕塑
- 算法入门之正整数排序
- 算法入门之冒泡排序
- 算法入门之选择排序
- 算法入门之插入排序
- 算法入门之希尔排序
- AndroidStudio导入第三方类库(SlidingMenu)
- Linux 多进程和多线程的优缺点
- 我的第一个iOS Demo
- 最短路
- 73.assign/retain/copy及深浅拷贝的区别
- 1.2算法入门之借书方案
- 计算机网络传输层的功能
- Ubuntu之通过*.so文件查找对应的Package Name
- Java数据类型中String、Integer、int相互间的转换
- javaer to go之TCP Socket与Goroutine
- 操作系统 *** 实现信号量
- linux下多进程、多线程编程
- copy, retain, assign , readonly , readwrite,strong,weak,nonatomic整理
- UIView背景图片设置一些技巧