穷举法求解简单计算问题分析
-
穷举法求解简单计算问题
根据问题的
已知条件,
对影响答案的各种因素可能的取值范围进
行组合,在
所有可能的组合情况中筛选出满足条件的答案。
一般,
影响答案的各种因素作为循环变量,
用多重循环对各种因素进
行组合,在内层循环中验证每种组合并输出满足条件的答案。
2-1.
编程,
< br>输出
20
以内
(含
20
)
所有满足
C
2
=A
2
+B
2
的完全平方数
C
。<
/p>
分析:影响答案的因素有
A
、
B
、
C
,它们的取值范围均为
1
~
2
0
。所
以用三重循环穷举
A
、
B
、
C
可能的值,输出满足条件
C
2
=A
2
+B
2
的
C
、
A
、<
/p>
B
及
C
的个数。
。
main( )
{ long a,b,c,n=0;
for(c=1;c<=20;c++)
for(a=1;a<=20;a++)
for(b=1;b<=20;b++)
if(c*c==a*a+b*b)
printf(
}
2-2.
一辆卡车违犯交通规则,撞人逃跑。现场三人目击事
件,但都
没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字
是相同的
;
乙说:
牌照的后两
位数字是相同的
;
丙是位数学家,
他<
/p>
说:四位的车号刚好是一个整数的平方。根据以上线索,编程,
输
出车号。
分析:用两重循环构造一个前两位数相同、后两位数
相同整数
i*1000+i*100+j*10+j
,
(其中
i=1
~
9
p>
,
j=0
~
9
p>
)
,然后再用循
环
(
c=31
~
99,c
的平方为
4
位数)
判断该整数
是否是
c
的平方。
2-3
.用
40
元买苹果、西瓜和梨共
100
个,
3
种水果都要。已知苹果
0.4
元一个,西瓜
4
元一个,梨
< br>0.2
元一个。问可以各买多
少个?编程,输出全部购买
方案。
分析:设西瓜买
x
个
,
苹果买
y
个
,
梨买
z
个
,
则问题满足方程:
4x+0.4y+0.2z=40
x+y+z=100
即
:
40x+4y+2z=400
x+y+z=100
西瓜至多买
(40-0.4-0.2)/4=9
个
,
苹果至多买
(40-4-0.2)/0.4=89
个
,
梨