枚举法(穷举法) _Java语言课程
3.5.1列举法(穷举法) ) ) ) )。
列举法是指将所有可能的情况一一测试,筛选出符合条件的各种结果并输出。
【例3-20】百元买一百只鸡:百元买一百只鸡。 已知公鸡5元/只,母鸡3元/只,小鸡1元/3只。
程序执行结果:
分析与思考: (1)这是不定方程———三元一次方程问题(三变量,两方程) )
x y z=100
5x 3y z/3=100
设公鸡为x只,母鸡为y只,小鸡为z只。
)2)为了减少循环次数,可以将三个for语句改写为:
【例3-21】假设银行清理存款不同期限的年利率分别为2.25%(1年期)、2.79%(2年期)、3.33%(3年期)、3.60%(5年期)。 利息=本金年利率存款年限。 现在某人手里有20,000元。 计算后选择存款方案,确保钱存入银行12年后获得的利息最多(假设银行不对超过存款期限的部分支付利息)
程序执行结果:
total=26120.999797751356
一年存0次; 一年存0次; 一年存0次; 一年存12次钱。
分析与思考:)1)储蓄20,000元12年,其中1年储蓄i1次,2年储蓄i2次,3年储蓄i3次,5年储蓄i5次,到期时获得的本金合计为2,000 * (12.25 % ) I1* ) 1 2.79%
)2)根据题意,也可以得到以下限制条件。
0<;=i5<;=12/5
0<;=I3<;=(12-5*I5 )/3
0<;=I2<;=(12-5*I5-3*I3 )/2
0<;=i1=12-5*i5-3*i3-2*i2