标题: 批处理实现百钱买百鸡,如何买? [打印本页]
作者: youxi01 时间: 2008-1-3 23:20 标题: 批处理实现百钱买百鸡,如何买?
用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
作者: ieutk 时间: 2008-1-8 02:24
- @echo off&setlocal enabledelayedexpansion
- set num=0
- :main
- for /l %%a in (0 1 25) do (
- for /l %%b in (0 1 35) do (
- for /l %%c in (0 2 100) do (
- set /a 鸡=5*%%a+3*%%b+%%c/2
- set /a 钱=%%a+%%b+%%c
- if !鸡! equ 100 if !钱! equ 100 (
- set /a num+=1
- echo 第!num!种方法: %%a + %%b + %%c
- ))))
- echo 共有 %num% 种方法
- pause>nul
复制代码
作者: ieutk 时间: 2008-1-8 02:26
新开区这么久了,没见几个人来呢?
郁闷ing~~!@$#^@^&*
作者: 随风 时间: 2008-1-8 12:06
别急,面包会有的,房子也会有的。。。。
作者: 浅默 时间: 2008-1-17 20:06
要不别买鸡了用那100块钱雇两人吧
作者: gfwlxx 时间: 2008-9-15 17:51 标题: 回复 5楼 的帖子
牛 ,真 牛
牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
作者: wxcute 时间: 2008-9-15 20:03
错了没看清题目,终于改好了。- @echo off
- set/a a=100/5,b=100/3,c=1000/5
- ::c大于100,所以循环时取100
- for /l %%i in (0,1,%a%) do (
- for /l %%j in (0,1,%b%) do (
- for /l %%k in (0,2,100) do (
- call :cnt %%i %%j %%k n m
- )
- )
- )
- pause
- goto :eof
- :cnt
- set/a %4=5*%1+3*%2+5*%3/10
- set/a %5=%1+%2+%3
- if %n% equ 100 if %m% equ 100 echo %n%=5*%1+3*%2+0.5*%3
复制代码
作者: pusofalse 时间: 2008-9-15 20:06
这题使用3重for循环,效率一下就降低了,可以使用2重。。。
作者: terse 时间: 2008-9-16 03:07
- @echo off&setlocal enabledelayedexpansion
- echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
- for /l %%i in (0,1,20) do (
- for /l %%j in (0,1,35) do (
- set/a a=5*%%i,b=3*%%j,c=^(100-a-b^)*2
- if !c! geq 0 set/a n+=1&echo 公鸡 %%i 鸡 %%j 小鸡 !c!
- ))
- echo 共有 %n% 种买法
- pause
复制代码
原来还有个条件
- @echo off&setlocal enabledelayedexpansion
- echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
- for /l %%i in (0,1,20) do (
- for /l %%j in (0,1,35) do (
- set/a a=5*%%i,b=3*%%j,c=^(100-a-b^)*2,m=%%i+%%j+c
- if !m! equ 100 if !c! geq 0 set/a n+=1&echo 公鸡 %%i 鸡 %%j 小鸡 !c!
- ))
- echo 共有 %n% 种买法
- pause
复制代码
[ 本帖最后由 terse 于 2008-9-16 21:13 编辑 ]
作者: AK47 时间: 2008-9-16 13:05
现在钱不耐用了,以前100块可以把猪抱回家了,现在100块不知道能不能买到多少只鸡!
作者: wxcute 时间: 2008-9-16 19:25
回九楼terse,你的方法是很快,就是有点小错误。
我改了下,不要见怪- @echo off
- echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
- for /l %%i in (0,1,20) do (
- for /l %%j in (0,1,33) do (
- call :setv %%i %%j c a b d
- )
- )
- echo 共有 %n% 种买法
- pause
- goto :eof
- :setv
- set/a %4=5*%1,%5=3*%2
- set/a %3=(100-%a%-%b%)*2
- set/a %6=%1+%2+%c%
- if #%d%==#100 set/a n+=1&echo 公鸡 %1 鸡 %2 小鸡 %c%
复制代码
作者: terse 时间: 2008-9-16 20:53
原帖由 wxcute 于 2008-9-16 19:25 发表
回九楼terse,你的方法是很快,就是有点小错误。
我改了下,不要见怪@echo off
echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
for /l %%i in (0,1,20) do (
for /l %%j in (0,1,33) d ...
这个意思吧
- @echo off&setlocal enabledelayedexpansion
- echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
- for /l %%i in (0,1,20) do (
- for /l %%j in (0,1,35) do (
- set/a a=5*%%i,b=3*%%j,c=^(100-a-b^)*2,m=%%i+%%j+c
- if !m! equ 100 if !c! geq 0 set/a n+=1&echo 公鸡 %%i 鸡 %%j 小鸡 !c!
- ))
- echo 共有 %n% 种买法
- pause
复制代码
作者: wxcute 时间: 2008-9-16 21:52
嗯。
问一下,这个”m=%%i+%%j+c“中的 c 为什么可以不用括起来?
作者: pusofalse 时间: 2008-9-16 22:18
- @echo off&setlocal enabledelayedexpansion
- for /l %%a in (0 1 20) do (
- for /l %%i in (0 1 33) do (
- set/a n=100-%%a-%%i,x=n"&"1
- if !x! equ 0 (
- set/a y=%%a*5+%%i*3+(n ">>" 1^)
- if !y! equ 100 set/a a+=1&echo %%a公鸡 %%i母鸡 !n!小鸡
- )))
- echo %a%种买法。
- pause
复制代码
作者: Batcher 时间: 2008-9-16 22:45 标题: 回复 13楼 的帖子
在用set /a进行计算的时候,变量是不需要“括起来”的(“括起来”也不会错)。
作者: z_berry 时间: 2008-9-23 13:44
- @echo off
- setlocal enabledelayedexpansion
- echo 统计结果>ret.txt
- for /L %%i in (0,1,20) do (
- for /L %%a in (0,1,33) do (
- set /a temp=5*%%i+3*%%a
- if 100 geq !temp! (
- set /a m=100-!temp!
- set /a n+=1
- echo 第!n!种方法为:%%i只公鸡,%%a只母鸡,!m!只小鸡 >>ret.txt
- )
- )
- )
- echo 方法有:%n%个 >>ret.txt
- pause>nul
复制代码
作者: 辉少 时间: 2008-9-25 19:59
这个用两重循环就够了
三重会影响效率
作者: z_berry 时间: 2008-9-26 11:28
难道谁用了三重吗?
作者: sjzong 时间: 2009-5-11 20:50 标题: 我来一个吧!
其实根据题意:这个题目必须要买小鸡才可以达到100只,至于公鸡和母鸡两者都要买也可以或者只买其中一种也可以。假设只买公鸡和小鸡时,公鸡最多只能买11只;只买母鸡和小鸡时,母鸡最多只能买20只。- @echo off&setlocal enableDelayedExpansion
- set/a num=0
- for /l %%i in (0 1 11) do (
- for /l %%j in (0 1 20) do (
- set/a a=2*^(100-5*%%i-3*%%j^)
- set/a b=!a!+%%i+%%j
- if !b! equ 100 set/a num+=1&echo 第!num!种:公鸡有 %%i 只;母鸡有 %%j 只;小鸡有 !a! 只。))
- echo 百钱买百鸡共有 !num! 种。
- pause>nul
复制代码
[ 本帖最后由 sjzong 于 2009-5-11 20:57 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |