标题: [数值计算] 批处理怎样计算出100元买100只鸡(有难度哦)? [打印本页]
作者: ithinkican 时间: 2010-12-27 17:51 标题: 批处理怎样计算出100元买100只鸡(有难度哦)?
用100元买100只鸡,其中公鸡5元一只、母鸡3元一只、小鸡1元三只,结果是100只鸡中有多少只公鸡、多少只母鸡、多少只小鸡,该怎样写代码解释出来呢?(有难度吗?)
作者: Batcher 时间: 2010-12-27 18:10
批处理实现百钱买百鸡,如何买?
http://bbs.bathome.net/thread-471-1-1.html
百钱买百鸡
http://bbs.bathome.net/thread-221-1-1.html
作者: broly 时间: 2010-12-27 18:42
- '//VBS百元买百鸡 @CODE BY Broly
- '//声明:此VBS由Broly制作,代码仅作学习研究之用。使用前请三思而行,产生不良后果均与本人无关!
- Const SUM=100
- Dim i,j,k,res,str
- For i=0 To SUM/5
- For j=0 To Int(SUM/3)
- For k=0 To SUM*3
- res=i*5+j*3+k/3 '小鸡一元3只
- If res=100 And i+j+k=100 Then
- str=str & "公鸡:" & i & Space(3) & _
- "母鸡:" & j & Space(3) & _
- "小鸡:" & k & vbCrLf
- End If
- Next
- Next
- Next
- WScript.Echo "方案:" & vbCrLf & str
复制代码
[ 本帖最后由 broly 于 2010-12-27 18:47 编辑 ]
作者: ithinkican 时间: 2010-12-27 20:57 标题: 我之所以发在此版块
就是想用批处理做出来
而不是VBS
作者: greenworld 时间: 2010-12-27 21:00
昨晚用手机发的代码,发现勉强能完成任务,但不知怎么,小鸡不被3整除时也有答案出来,可见批处理对小数的处理不太严谨...这里加了两行代码,对余数判断一下,已经OK了...- @echo off
- for /l %%a in (0,1,20) do (
- for /l %%b in (0,1,33) do (
- set /a c=100-%%a-%%b
- call :A %%a %%b %%c%%
- )
- )
- goto :eof
- :A
- set/a sum=%1*5+%2*3+%3/3
- set/a a=%3%%3
- if %sum% equ 100 if %a% equ 0 (
- echo 公鸡:%1
- echo 母鸡:%2
- echo 小鸡:%3
- echo.
- pause>nul
- )
- goto :eof
复制代码
[ 本帖最后由 greenworld 于 2010-12-28 11:18 编辑 ]
作者: greenworld 时间: 2010-12-27 21:04
手机回复的,写程序难啊,还不能检测对错,不知行不?执行效率就肯定不理想,期待高手出招
作者: broly 时间: 2010-12-27 21:57 标题: 回复4L
思路是一样的- @echo off
- setlocal enabledelayedexpansion
- for /l %%i in (0 1 25) do (
- for /l %%j in (0 1 34) do (
- for /l %%k in (0 1 300) do (
- set/a y=%%k%%3
- if !y! equ 0 (
- set/a sum1=%%i*5+%%j*3+%%k/3
- set/a sum2=%%i+%%j+%%k
- if !sum1! equ 100 (
- if !sum2! equ 100 (
- echo 公鸡:%%i 母鸡:%%j 小鸡:%%k
- )
- )
- )
- )
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |