[16腾讯在线笔试题2]-填数字

来源:互联网 发布:小雏菊香水 知乎 编辑:程序博客网 时间:2024/05/22 03:11

有以下题解,试用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();}


 

0 0