找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 40523|回复: 18

批处理实现百钱买百鸡,如何买?

[复制链接]
发表于 2008-1-3 23:20:48 | 显示全部楼层 |阅读模式
用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
发表于 2008-1-8 02:24:53 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set num=0
  3. :main
  4. for /l %%a in (0 1 25) do (
  5.     for /l %%b in (0 1 35) do (
  6.         for /l %%c in (0 2 100) do (
  7.             set /a 鸡=5*%%a+3*%%b+%%c/2
  8.             set /a 钱=%%a+%%b+%%c
  9.             if !鸡! equ 100 if !钱! equ 100 (
  10.                 set /a num+=1
  11.                 echo 第!num!种方法:  %%a + %%b + %%c
  12.         ))))
  13. echo  共有 %num% 种方法
  14. pause>nul
复制代码
发表于 2008-1-8 02:26:34 | 显示全部楼层
新开区这么久了,没见几个人来呢?

郁闷ing~~!@$#^@^&*
发表于 2008-1-8 12:06:33 | 显示全部楼层
别急,面包会有的,房子也会有的。。。。
发表于 2008-1-17 20:06:29 | 显示全部楼层
要不别买鸡了用那100块钱雇两人吧
发表于 2008-9-15 17:51:01 | 显示全部楼层

回复 5楼 的帖子

牛 ,真 牛
牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
发表于 2008-9-15 20:03:26 | 显示全部楼层
错了没看清题目,终于改好了。
  1. @echo off
  2. set/a a=100/5,b=100/3,c=1000/5
  3. ::c大于100,所以循环时取100
  4. for /l %%i in (0,1,%a%) do (
  5.  for /l %%j in (0,1,%b%) do (
  6.   for /l %%k in (0,2,100) do (
  7.    call :cnt %%i %%j %%k n m
  8.   )
  9.  )
  10. )
  11. pause
  12. goto :eof
  13. :cnt
  14.  set/a %4=5*%1+3*%2+5*%3/10
  15.  set/a %5=%1+%2+%3
  16.  if %n% equ 100 if %m% equ 100 echo %n%=5*%1+3*%2+0.5*%3
复制代码
发表于 2008-9-15 20:06:34 | 显示全部楼层
这题使用3重for循环,效率一下就降低了,可以使用2重。。。
发表于 2008-9-16 03:07:26 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
  3. for /l %%i in (0,1,20) do (
  4.    for /l %%j in (0,1,35) do (
  5.        set/a a=5*%%i,b=3*%%j,c=^(100-a-b^)*2
  6.        if !c! geq 0 set/a n+=1&echo 公鸡 %%i 鸡 %%j 小鸡 !c!
  7. ))
  8. echo 共有 %n% 种买法
  9. pause
复制代码

原来还有个条件
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
  3. for /l %%i in (0,1,20) do (
  4.    for /l %%j in (0,1,35) do (
  5.        set/a a=5*%%i,b=3*%%j,c=^(100-a-b^)*2,m=%%i+%%j+c
  6.        if !m! equ 100 if !c! geq 0 set/a n+=1&echo 公鸡 %%i 鸡 %%j 小鸡 !c!
  7. ))
  8. echo 共有 %n% 种买法
  9. pause
复制代码

[ 本帖最后由 terse 于 2008-9-16 21:13 编辑 ]
发表于 2008-9-16 13:05:39 | 显示全部楼层
现在钱不耐用了,以前100块可以把猪抱回家了,现在100块不知道能不能买到多少只鸡!
发表于 2008-9-16 19:25:34 | 显示全部楼层
回九楼terse,你的方法是很快,就是有点小错误。
我改了下,不要见怪
  1. @echo off
  2. echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
  3. for /l %%i in (0,1,20) do (
  4.  for /l %%j in (0,1,33) do (
  5.   call :setv %%i %%j c a b d
  6.  )
  7. )
  8. echo 共有 %n% 种买法
  9. pause
  10. goto :eof
  11. :setv
  12.  set/a %4=5*%1,%5=3*%2
  13.  set/a %3=(100-%a%-%b%)*2
  14.  set/a %6=%1+%2+%c%
  15.  if #%d%==#100 set/a n+=1&echo 公鸡 %1 鸡 %2 小鸡 %c%
复制代码
发表于 2008-9-16 20:53:01 | 显示全部楼层
原帖由 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 ...

这个意思吧
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 用100块钱买鸡,价格如下:公:5$, 母:3$, 小:1$两只,一共多少种买法?
  3. for /l %%i in (0,1,20) do (
  4.    for /l %%j in (0,1,35) do (
  5.        set/a a=5*%%i,b=3*%%j,c=^(100-a-b^)*2,m=%%i+%%j+c
  6.        if !m! equ 100 if !c! geq 0 set/a n+=1&echo 公鸡 %%i 鸡 %%j 小鸡 !c!
  7. ))
  8. echo 共有 %n% 种买法
  9. pause
复制代码
发表于 2008-9-16 21:52:43 | 显示全部楼层
嗯。

问一下,这个”m=%%i+%%j+c“中的 c 为什么可以不用括起来?
发表于 2008-9-16 22:18:57 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (0 1 20) do (
  3.       for /l %%i in (0 1 33) do (
  4.            set/a n=100-%%a-%%i,x=n"&"1
  5.            if !x! equ 0 (
  6.               set/a y=%%a*5+%%i*3+(n ">>" 1^)
  7.               if !y! equ 100 set/a a+=1&echo %%a公鸡 %%i母鸡 !n!小鸡
  8. )))
  9. echo %a%种买法。
  10. pause
复制代码
发表于 2008-9-16 22:45:54 | 显示全部楼层

回复 13楼 的帖子

在用set /a进行计算的时候,变量是不需要“括起来”的(“括起来”也不会错)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:50 , Processed in 0.020099 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表