Board logo

标题: [出题]bat应用 [打印本页]

作者: pusofalse     时间: 2008-7-14 19:10    标题: [出题]bat应用
鸡兔同笼而不识其各自数量,数头3600,数脚12000,求多少只兔子,多少只鸡。

作者: 26933062     时间: 2008-7-14 19:21
完全没有思路,这怎么算啊?

作者: pusofalse     时间: 2008-7-14 19:23
26933062前辈还真是会开玩笑,你若不会,还有谁会?~
不好意思,我本想配合你的玩笑的。。。^_^

作者: 26933062     时间: 2008-7-14 19:33
根本没法考虑bat问题,因为我根本就不知道怎么去算。

作者: HAT     时间: 2008-7-14 19:59
@echo off
setlocal enabledelayedexpansion
echo 我正在想。。。
set a=3600
set b=12000
set x=1
:loop
set /a f=2*!x!+4*(%a%-!x!)
set j=!x!
set /a t=%a%-!x!
if %f% equ %b% (
echo 鸡:%j% 兔:%t%
pause
goto :eof
)
set /a x+=1
if !x! lss %a% (
goto :loop
)

作者: pusofalse     时间: 2008-7-14 20:07
高!~ 其实前辈的代码不用延迟也可以啊~
我用了个投机取巧的方法,取其公约数,得出正确结果后在后面补0。。。

Last edited by pusofalse on 2008-7-14 at 08:09 PM ]

作者: HAT     时间: 2008-7-14 20:14
刚开始想太复杂了,开了延迟扩展,后来贴代码的时候忘了删掉,见谅:)

作者: 26933062     时间: 2008-7-14 20:35
给 5 楼 缩水
我只能干体力活了。
:

@echo off
:loop
set /a x+=1,f=2*x+4*(3600-x),j=x,t=3600-x
if %f% neq 12000 goto :loop
echo 鸡:%j% 兔:%t%
pause

作者: pusofalse     时间: 2008-7-14 20:42
汗。。。没思路,这么精简。赞佩!~

Last edited by pusofalse on 2008-7-14 at 08:43 PM ]

作者: 26933062     时间: 2008-7-14 20:44
这个题我完全不会算,在qq里请教了5楼,他写出了代码,我只是把他的代码精简了一下而以。

作者: pusofalse     时间: 2008-7-14 20:47
Originally posted by 26933062 at 2008-7-14 08:44 PM:
这个题我完全不会算,在qq里请教了5楼,他写出了代码,我只是把他的代码精简了一下而以。

我觉得你在说谎,这题无论如何也难不倒你的。。。

作者: bat-zw     时间: 2008-7-15 13:49
来个小学版的,不要循环:

@echo off
set /a a=(3600*4-12000)/2
set /a b=3600-a
echo 兔子%b%只,鸡%a%只。&pause>nul

作者: pusofalse     时间: 2008-7-15 14:46
Originally posted by zw19750516 at 2008-7-15 01:49 PM:
来个小学版的,不要循环:

@echo off
set /a a=(3600*4-12000)/2
set /a b=3600-a
echo 兔子%b%只,鸡%a%只。&pause>nul

厉害。。。这思路。。。简直五体投地了。

作者: bat-zw     时间: 2008-7-15 17:13
厉害。。。这思路。。。简直五体投地了。


这道题其实就是小学数学里的鸡兔问题,下面讲一下解题思路吧(晕,有点小
学数学老师的感觉):
先假设3600只全部是兔子,那么就会有3600*4=144000只脚,144000-
12000就比实际多出了2400只脚,现在反过来想如果将3600只里的n只兔子换成
为n只鸡就能使脚总数正好等于12000只,而每只兔子比每只鸡多两只脚,于是
n=2400/2=1200只,也就是说将3600只兔子里的1200只换成为鸡,脚的总数正
好为12000只,于是,此题便解出来了:兔子2400只,鸡1200只。
同时,还可以先假设3600只全部是鸡,12000-3600*2/(4-2)得出要替换为
兔子的鸡为2400只,剩下的鸡为1200只。

作者: 26933062     时间: 2008-7-15 17:24
Originally posted by zw19750516 at 2008-7-15 13:49:
来个小学版的,不要循环:

@echo off
set /a a=(3600*4-12000)/2
set /a b=3600-a
echo 兔子%b%只,鸡%a%只。&pause>nul

真是一个比一个强!

作者: pusofalse     时间: 2008-7-15 18:03
真的是小学数学里的吗。。。我数学不在行。。。
听同学说的这道题,想着没事就拿来做下,这题也不难。。。
但看了前辈们的思路,汗颜。。。

作者: fangtanba     时间: 2008-8-1 20:39
想了半天,原来可以这么简单的办法
佩服....
强!!!

Last edited by fangtanba on 2008-8-1 at 08:40 PM ]

作者: quya     时间: 2008-8-2 11:01
鸡兔共笼是我国古代著名趣题之一。

1500多年前就出现在《孙子算经》中,原题是这样的:

今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?

最容易理解的思路是“砍足法”

假如砍去每只鸡、每只兔一半的脚,则每只鸡就变成了“独角鸡”,每只兔就变成了“双脚兔”。这样,(1)鸡和兔的脚的总数就由94只变成了47只;(2)如果笼子里有一只兔子,则脚的总数就比头的总数多1。因此,脚的总只数47与总头数35的差,就是兔子的只数,即47-35=12(只)。显然,鸡的只数就是35-12=23(只)了。

就本题而言, 最简单的思路就是

兔子有 12000/2-3600=2400只

Last edited by quya on 2008-8-2 at 11:04 AM ]

作者: cad55     时间: 2008-8-2 11:26
强人呀
高手呀

作者: 23112656     时间: 2008-8-2 17:55
如果会算的话到还可以写批`但一点头绪都没啊`

作者: luowei14     时间: 2008-8-2 22:09
,,,呵呵,有点汗颜

作者: zouzhxi     时间: 2008-8-6 12:48
作者: ccily2701     时间: 2008-8-21 17:25
Originally posted by bat-zw at 2008-7-15 13:49:
来个小学版的,不要循环:

@echo off
set /a a=(3600*4-12000)/2
set /a b=3600-a
echo 兔子%b%只,鸡%a%只。&pause>nul



你要是女的,我一定嫁你。