javaScript百钱白鸡问题多种解答思路
【摘要】
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<me...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/*
有公鸡、母鸡、小鸡一共100只,其中公鸡:5钱,母鸡:3钱;三只小鸡一共1钱。
现在要100钱买100鸡,算一下公鸡、母鸡、小鸡各有多少只?
假设:公鸡:x只;母鸡:y只;小鸡:z只
x+y+z=100
5*x+3*y+z/3=100
需要列举三个等式才能计算出来?只有两个。
*/
//多重循环:就是循环里面嵌套循环;也称为循环的嵌套;
//x=0;需要匹配y从0到100,逐个匹配;
//y=0;逐个匹配z从0到100;y=1;匹配z从0到100;y=2,匹配z从0到100;
//最终匹配100*100*100=1000000;1百万次
// for (var x = 0; x <= 100; x++) { //x:公鸡
// for (var y = 0; y <= 100; y++) { //y:母鸡
// for (var z = 0; z <= 100; z++) { //z:小鸡
// if ((x + y + z == 100) && (5 * x + 3 * y + z / 3 == 100)) {
// document.write("公鸡:" + x + ",母鸡:" + y + ",小鸡:" + z + "<br/>");
// }
// }
// }
// }
/*
提高效率:
1.降低循环次数;鸡:活蹦乱跳的,一定是整数:20*33*100;66000;20*33
2.减少循环,原来3个,能不能变成2个
*/
for (var x = 0; x <= 100 / 5; x++) { //x:公鸡,最大个数:20
for (var y = 0; y <= 100 / 3; y++) { //y:母鸡 ;最大33
//有个x+y+z=100,可以根据这个公式:z=100-x-y,得到z的值,所以不需要循环了
z = 100 - x - y;
if ((5 * x + 3 * y + z / 3 == 100)) {
document.write("公鸡:" + x + ",母鸡:" + y + ",小鸡:" + z + "<br/>");
}
}
}
</script>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。
原文链接:aaaedu.blog.csdn.net/article/details/120015038
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)