标题: [出题]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
Quote: |
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
Quote: |
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
Quote: |
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
http://www.cn-dos.net/forum/view ... =%E9%B8%A1%E5%85%94
已經有了...
作者: ccily2701
时间: 2008-8-21 17:25
Quote: |
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 |
|
你要是女的,我一定嫁你。