C++经典问题算法分析.doc

C++经典算法详解 半地沙子2013-10 PAGE 1 - 一、百钱买百鸡问题(枚举算法) ★算法分析:1、对百钱买百鸡问题的所有结果进行逐一统计验证(枚举验证)。 2、公鸡最多只能买20只,母鸡最多只能买33只,小鸡最多只能买300只。 3、用for循环进行逐一验证 4、对小鸡的费用应用x/3代替x*(1/3),因为1/3在整型变量下的值为0。 5、需保证小鸡的数量是3的倍数,即x%3==0。 ★源代码: 图1-1 ★执行结果: 图1-2 二、填写运算符问题(枚举算法) ★算法分析:1、5个数字需要填入4个运算符。 2、每两个数字之间有4种运算符可以选择。 3、当运算符中填入除号时,右边的被除数不能为0. 4、乘除的优先级大于加减的优先级。 5、可以用循环的方法逐一填入各种运算符。 ★源代码: 图2-1 三、汉诺塔问题(递归算法) ★算法分析:1、汉诺塔问题可以运用递归算法解决。 2、递归是函数本身调用直接或者间接调用自己的方法。 3、在汉诺塔问题中需要的步骤数是2^n-1。 4、汉诺塔问题步骤解析:

文档评论(0)

1亿VIP精品文档

相关文档