《常用算法深入学习实录》随记-20161001

本文记录了对《常用算法深入学习实录》中枚举算法的学习心得,探讨了如何通过枚举对象和范围优化算法,并以百钱买百鸡问题为例,展示了代码实现。此外,还分享了在VS环境下避免命令行窗口快速关闭的技巧,以及枚举范围的确定应该排除不合法的选项。

枚举:枚举对象、枚举范围、判定条件。


百钱买百鸡   

我的代码:

/*
Enumeration
xiaoji.c
Enumeration Object,Range and Judgement.
Object:
	xj mj gj
Range
	mj <= 33, gj <= 20, xj <= 300
Judgement
	mj*3 + gj*5 + xj*1/3 = 100;
*/
#include
//int xj = 0, mj = 0, gj = 0;
int main()
{
	for (int xj = 0;xj <= 300;xj++)
	{
		for(int mj = 0;mj <= 33; mj++)
		{
			for(int gj = 0;gj <= 20;gj++)
			{
				if ((xj%3==0)&&(xj/3 + mj*3 + gj*5 == 100)&&(mj + gj + xj==100))
					printf("xj = %d, mj = %d, gj = %d\n",xj,mj,gj);
			}
		}
	}
}

‘’基于枚举算法的优化方法研究‘’给出了缩小枚举范围的方法。

其实可以不用getch()函数来避免vs运行时命令行一闪而过,使用Ctrl + F5运行即可。F10相当于Matlab的Step    F11相当于Step in


填写运算符

枚举范围应该刨除不符合题目规则的枚举项。并不是所有的枚举项都合法。

我的代码:


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值