2016腾旭研发工程师笔试题

来源:互联网 发布:小雏菊香水 知乎 编辑:程序博客网 时间:2024/04/28 16:40

用C/C++代码算出满足上述条件的值。


我们首先来分析一下:

step0:我们可以得到如下方程:


step1:由方程(1)、(3)、(6)可得


我们可以把x1、x5、x6看成自变量,x2、x8、x7看成对应的函数,这样只要x1、x5、x6确定了,x2、x8、x7也随之确定。

step2:再由公式(4)(5)可得:

同理我们把x1、x6、x2、x7看成自变量(可以由step1确定),x3、x4看成对应的函数。

最后,我们发现方程(3)还没用到,我们已经可以确定所有的变量了,因此,方程(3)可以用来做验证。

经过以上三步推导我们可以得到变量之间的拓扑关系:


这样,我们只要给定变量x1、x6、x5的值,其他变量的值随之确定,因此,三成循环即可搞定。

最后,我们由以上的推导过程,容易确定x1、x6、x5的取值范围


下面,我们给出程序代码:

#include<stdio.h>void f(){    int x1,x2,x3,x4,x5,x6,x7,x8;    for(x1=0; x1<=4; x1++)    {        for(x5=0; x5<=5; x5++)        {            for(x6=0; x6<=9-x5; x6++)            {                x2=13-x1;                x8=5-x5;                x7=(9-x5-x6);                x3=(4-x1)*x6;                if(x7!=0)                {                    if((x2-4)%x7==0)                        x4=(x2-4)/x7;                    else continue;                    if(x3-x4*x5==4)                    {                        printf("******************************\n");                        printf("%3d + %3d -   9=  4\n",x1,x2);                        printf("  +     -     -\n");                        printf("%3d - %3d * %3d=  4\n",x3,x4,x5);                        printf("  /     *     -\n");                        printf("%3d + %3d - %3d=  4\n",x6,x7,x8);                    }                    else continue;                }                else continue;            }        }    }}int main(){    f();    return 0;}
0 0
原创粉丝点击