Board logo

标题: 请教:100个面包的买法 [打印本页]

作者: dj0733     时间: 2008-7-2 17:39    标题: 请教:100个面包的买法

用100块钱买100个面包,大面包一只五钱,中面包一只三钱,小面包三只一钱,批处理计算共有几种买法呢?


谢谢,感激!
作者: terse     时间: 2008-7-2 21:11
100块钱怎么换成钱
作者: slore     时间: 2008-7-2 23:38
1:1
作者: terse     时间: 2008-7-2 23:54
晕了 居然忘记一个判断
@echo off&setlocal enabledelayedexpansion
echo 用100块钱买100个面包,大面包一只五块钱,中面包一只三块钱,小面包三只一块钱,共有几种买法呢?
echo.
for /l %%i in (0,3,99) do (
   for /l %%j in (0,1,20) do (
       set/a a=%%i/3,b=5*%%j,d=100-%%i-%%j,c=d*3,sum=a+b+c
       if !sum! equ 100  if !d! geq 0 set/a n+=1&echo 大面包 %%j 中面包 !d! 小面包 %%i
))
echo 共有 %n% 种买法
pause
[ Last edited by terse on 2008-7-3 at 11:38 AM ]
作者: pusofalse     时间: 2008-7-3 06:51


  Quote:
Originally posted by terse at 2008-7-2 11:54 PM:
这样算法对不
@echo off&setlocal enabledelayedexpansion
echo 用100块钱买100个面包,大面包一只五块钱,中面包一只三块钱,小面包三只一块钱,共有 ...

一定要买100个面包。。。

这是我的代码,抄袭的前辈的。。。稍作了修改。。
@echo off&setlocal enabledelayedexpansion
echo 用100块钱买100个面包,大面包一只五块钱,中面包一只三块钱,小面包三只一块钱,共有几种买法呢?
for /l %%a in (0 1 20) do (
for /l %%b in (0 1 33) do (
for /l %%c in (0 3 135) do (
        set/a num=%%a+%%b+%%c
        if !num! equ 100 (
        set/a a=%%a*5,b=%%b*3,c=%%c/3,var=a+b+c
        if !var! equ 100 echo %%a个大面包 %%b个中面包 %%c个小面包&set/a xx+=1
))))
echo 共有%xx%种买法。
pause

0个大面包 25个中面包 75个小面包
4个大面包 18个中面包 78个小面包
8个大面包 11个中面包 81个小面包
12个大面包 4个中面包 84个小面包
共有4种买法。
[ Last edited by pusofalse on 2008-7-3 at 07:51 AM ]
作者: pusofalse     时间: 2008-7-3 08:02
再改进一下。。。
@echo off&setlocal enabledelayedexpansion
echo 用100块钱买100个面包,大面包一只五块钱,中面包一只三块钱,小面包三只一块钱,共有几种买法呢?
echo.
echo %time%
for /l %%a in (0 1 20) do (
for /l %%b in (0 1 33) do (
        set/a sum=100-%%a-%%b
        if !sum! geq 47 (
        set/a str=!sum!%%3
        if !str! equ 0 (
        set/a a=%%a*5,b=%%b*3,c=!sum!/3,var=a+b+c
        if !var! equ 100 echo %%a个大面包 %%b个中面包 !sum!个小面包&set/a xx+=1
))))
echo 共有%xx%种买法。
echo %time%
pause>nul

作者: terse     时间: 2008-7-3 11:33


  Quote:
Originally posted by pusofalse at 2008-7-3 08:02:
再改进一下。。。

@echo off&setlocal enabledelayedexpansion
echo 用100块钱买100个面包,大面包一只五块钱,中面包一只三块钱,小面包三只一块钱, ...

晕了 居然忘记一个判断 这样也好
@echo off&setlocal enabledelayedexpansion
echo 用100块钱买100个面包,大面包一只五块钱,中面包一只三块钱,小面包三只一块钱,共有几种买法呢?
echo.
for /l %%i in (0,3,99) do (
   for /l %%j in (0,1,20) do (
       set/a a=%%i/3,b=5*%%j,d=100-%%i-%%j,c=d*3,sum=a+b+c
       if !sum! equ 100  if !d! geq 0 set/a n+=1&echo 大面包 %%j 中面包 !d! 小面包 %%i
))
echo 共有 %n% 种买法
pause
[ Last edited by terse on 2008-7-3 at 11:39 AM ]
作者: bat-zw     时间: 2008-7-3 12:45    标题: 也来一个:


@echo off&setlocal enabledelayedexpansion
for /l %%a in (0,1,20) do (
    for /l %%b in (0,1,33) do (
        set /a c=100-%%a-%%b
        set /a d=!c!%%3
        if !d! equ 0 (
           set /a totels=%%a*5+%%b*3+!c!/3
           if !totels! equ 100 (
              set /a num+=1
              set _!num!=大面包%%a个,中面包%%b个,小面包!c!个
))))
echo 总共有!num!种买法:
for /l %%i in (1,1,%num%) do echo !_%%i!
pause>nul

作者: bat-zw     时间: 2008-7-3 12:46
晕,发了才发现terse的思路和我的差不多,呵呵。
作者: dj0733     时间: 2008-7-5 12:35
谢谢高手们解答,着实感谢1