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
www.cn-dos.net/forum ... 已經有了...

作者: 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
你要是女的,我一定嫁你。