题目要求:百钱百鸡问题(HTML) 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡

题目要求:百钱百鸡问题(HTML) 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,第1张

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>百钱买百鸡</title>

</head>

<body>

<script>

    var res = []

    for(var a = 0 a <= 20 a++){

        for(var b = 0 b <= Math.ceil((100 - a * 5)/3) b++){

            for(var c = 0 c <= Math.ceil(100 - a * 5 - b * 3) c++){

                if((a * 5 + b * 3 + c) === 100){

                    res.push({a ,b ,c})

                }

            }

        }

    }

    console.log(res)

</script>

</body>

</html>

楼上的方法运行效率较低并且不是HTML格式的,每次每个都循环满了,如果不考虑性能的话可以,如果考虑性能则需要把之前已经占用的钱除去。代码里的结果输出到控制台了,可以按需要进行筛选。

设x、y、z分别代表公鸡母鸡、小鸡数量。则x不会超过20,y不会超过33,z不会超过100。

有如下两方程成立:

x+y+z=100

5x+3y+z/3=100

联立两方程删除z得:7x+4y=100

用pascal编的程序如下:

var

x,y,z:byte

begin

for x:=1 to 20 do for y:=1 to 33 do

if (7*x+4*y=100)and(100-x-y>=0) then begin

z:=100-x-y

writeln(x:4,y:4,z:4)

end

readln

end.

首先,你这个题目的数据是无解的。

假设公鸡x个。母鸡y个。

公鸡总花费为15*x == X 》》为5的倍数

那么母鸡的总花费为 Y = 100-X 也为5的倍数。

即: 28*y = Y 为5的倍数。

28于与5的最小公倍数为 140.....所以Y最小为140元 》 100 元。

此数据无解。。

代码如下:

#include <iostream>

using namespace std

int f( int M, int N )

int main()

{

cout<<f(15,28)<<endl

getchar()

return 0

}

int f( int M, int N )

{

int i,j,flag

if( M <= 0 || N <= 0 ) return -1

flag = 0

for(i=1i<100/Mi++)

{

for(j=1j*N+i*M<100j++)

{

if( j*N+i*M == 100)

{

flag ++

cout<<"公鸡:"<<i<<" 母鸡:"<<j<<endl

}

}

}

return flag

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7294768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存