有以下题解,试用C/C++代码来列出满足下列0-100内的所有答案。
|
|
|
|
|
|
|
A |
+ |
B |
- |
9 |
等于 |
4 |
+ |
|
- |
|
- |
|
|
C |
- |
D |
* |
E |
等于 |
4 |
/ |
|
* |
|
- |
|
|
F |
+ |
G |
- |
H |
等于 |
4 |
等于 |
|
等于 |
|
等于 |
|
|
4 |
|
4 |
|
4 |
|
|
遍历所有解,搜寻答案。由于数值关系可以减少搜索范围。
(1)A大于等于0,小于等于4(除法结果为正数);
(2)A加B等于13;
(3)E加上H等于5,(E大于等于零小于等于5)。
(4)F不等于0;
(5)F加上G等于9-E;
搜索范围后发现只有一组解。依次为2 , 11,4,1,0,2,7,5
代码:
void SearchRet()
{
int a,b,c,d,e,f,g,h;
for(a = 0; a<=4;++a){
b = 13 - a;
for(e = 0; e<=5 ; ++e)
{
h = 5 - e;
for(f = 1; f<= 9-e ; ++f)
{
g = 9-e-f;
for(c = 0;c<=100;++c)
{
for(d = 0;d<=100;++d)
{
if(a + (float)c/f == 4 && c-d*e ==4 && b-d*g==4)
{
printf("%d-%d-%d-%d-%d-%d-%d-%d\n",a,b,c,d,e,f,g,h);
}
}
}
}
}
}
}
int main(){
SearchRet();
}