帮忙解决一道C语言题目尽量用基础的方法

2024-11-09 02:45:59
推荐回答(1个)
回答1:

显然这个问题应该转化为解线性方程组,但是你又要用简单的方法,那就只能用非常耗时间的穷举了,如果用这个跑OJ,必然超时

#include 

int main()
{    
    int i, j, k, l;    //    羊犬鸡兔
    int flag = 0;
    
    for(i = 1; i<300&&flag==0 ; ++i)    // 1496/5==299
        for(j = 1; j<375&&flag==0; ++j)    //    1496/4==374
            for(k = 1 ; k<137&&flag==0; ++k)    // 958/7==136
                for(l = 1; l<192&&flag==0; ++l)    //    958/5==191
                {
                    if(5*i+4*j+3*k+2*l==1496 &&
                       4*i+2*j+6*k+3*l==1175 &&
                       3*i+1*j+7*k+5*l==958  &&
                       2*i+3*j+5*k+1*l==861)
                       flag = 1;
                }
    printf("兔的价钱为:%d\n", l);            
    return 0;
}