![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 06:26 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]100个馒头分在6个盘子里 ... (vbs) |
| 可打印版本 1,034 / 13 |
| 第1楼 jmz573515 | 发表于 2007-05-09 08:41 |
| 银牌会员 发帖 464 积分 1,212 | |
|
[已解决]100个馒头分在6个盘子里 ... (vbs) 100个馒头分在6个盘子里,每个盘子分的馒头个数都不离6(如16,6,62等),馒头的数可以重复.
[ Last edited by jmz573515 on 2007-5-9 at 05:41 PM ] |
|
| 第2楼 flyinspace | 发表于 2007-05-09 12:36 |
| 银牌会员 发帖 517 积分 1,206 | |
|
6 6 6 6 16 60
随便给了一个:)vbs我不会:)帮不了你。 @echo off & SetLocal EnableDelayedExpansion rem 提取计算的数字: set "count=0" for /l %%i in (0,1,100) do echo %%i | find "6" && set "count+=1" & set "num!count!=%%i" 然后,换个算法而已。。(循环查找了。满足条件的就打印出来) |
|
| 第3楼 ccwan | 发表于 2007-05-09 13:10 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
到excelhome求了段vba代码来,不过不知如何改成vbs的,呵呵。
|
|
| 第4楼 jmz573515 | 发表于 2007-05-09 17:40 |
| 银牌会员 发帖 464 积分 1,212 | |
|
For a = 1 To s.Count
For b = a To s.Count For c = b To s.Count For d = c To s.Count For e = d To s.Count For f = e To s.Count 这个用的妙!谢谢,问题解决了。 |
|
| 第5楼 ccwan | 发表于 2007-05-09 17:51 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
jmz573515兄何不贴出代码,大家共享。
|
|
| 第6楼 jmz573515 | 发表于 2007-05-09 18:00 |
| 银牌会员 发帖 464 积分 1,212 | |
|
’不知道有没有更好的方法
|
|
| 第7楼 ccwan | 发表于 2007-05-09 18:14 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
方法可能还有吧,不过谈不上什么更好的方法,只是思路不同罢了。
|
|
| 第8楼 flyinspace | 发表于 2007-05-09 18:39 |
| 银牌会员 发帖 517 积分 1,206 | |
|
给个批处理版的。。不过速度超级慢。。。。 @echo off & SetLocal EnableDelayedExpansion
rem 提取计算的数字: set "count=0" echo 正在提取数据…… for /l %%i in (0,1,100) do ( echo %%i | find "6" >nul && call :GetNum "%%i" ) echo 正在打印数据…… for /f "delims== tokens=2 " %%a in ('set ShowNum') do ( set "a=%%a" for /f "delims== tokens=2 " %%b in ('set ShowNum') do ( set "b=%%b" for /f "delims== tokens=2 " %%c in ('set ShowNum') do ( set "c=%%c" for /f "delims== tokens=2 " %%d in ('set ShowNum') do ( set "d=%%d" for /f "delims== tokens=2 " %%e in ('set ShowNum') do ( set "e=%%e" for /f "delims== tokens=2 " %%f in ('set ShowNum') do ( set "f=%%f" set /a "s=!a!+!b!+!c!+!d!+!e!+!f!" if "!s!"=="100" call :PrintNum "!a!" "!b!" "!c!" "!d!" "!e!" "!f!" "!s!" ) ) ) ) ) ) GOTO END :GetNum _num_ set /a "count+=1" set ShowNum%count%=%~1 goto :EOF :PrintNum echo %~1+%~2+%~3+%~4+%~5+%~6=%~7 goto :EOF :END pause |
|
| 第9楼 zouzhxi | 发表于 2007-05-10 20:06 |
| 中级用户 发帖 177 积分 430 来自 广东深圳 | |
|
我试了一那个P...
|
|
| 第10楼 zhoushijay | 发表于 2007-05-11 16:36 |
| 高级用户 发帖 375 积分 845 | |
|
set q=c(6)
for each n1 in q for each n2 in q for each n3 in q for each n4 in q for each n5 in q for each n6 in q if q(n1)+q(n2)+q(n3)+q(n4)+q(n5)+q(n6)=100 then y=y&chr(10)&q(n1)&"+"&q(n2)&"+"&q(n3)&"+"&q(n4)&"+"&q(n5)&"+"&q(n6) end if next next next next next next msgbox(y) function c(x) set d=createobject("scripting.dictionary") i=1 for a=0 to 9 for b=0 to 9 if a-x=0 or b-x=0 then f=int(a&b) d.add i,f i=i+1 end if next next set c=d end function 不知道为啥,这个代码结构上似乎没错,但是消耗了大半的CPU资源最后仍然没反映。。 [ Last edited by zhoushijay on 2007-5-12 at 01:34 PM ] |
|
| 第11楼 slore | 发表于 2007-05-11 19:55 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
Function c(x)
Set d = CreateObject("Scripting.Dictionary") i = 1 For a = 0 To 9 For b = 0 To 9 If a - x = 0 or b - x = 0 Then f = Int(a & b) d.add i,f i = i + 1 End If Next Next Set c = d End Function 这个过程只是浪费资源…… Function c(x) Set d = CreateObject("Scripting.Dictionary") i = 1 For a = 1 To x - 1 i = i + 1 f = CInt(a & x) d.add i,f Next For a = 0 To 9 i = i + 1 f = CInt(x & a) d.add i,f Next For a = x - 1 To 9 i = i + 1 f = CInt(a & x) d.add i,f Next Set c = d End Function |
|
| 第12楼 zouzhxi | 发表于 2007-05-11 20:59 |
| 中级用户 发帖 177 积分 430 来自 广东深圳 | |
|
不会呀...CPU资源只有15%到25%左右...不会很耗资源呀....只是用的时间较久而已......
|
|
| 第13楼 digger | 发表于 2007-05-11 22:33 |
| 初级用户 发帖 29 积分 79 来自 湖南 | |
|
修改自8F的代码:
|
|
| 第14楼 sunjiang0 | 发表于 2007-05-12 05:23 |
| 新手上路 发帖 4 积分 6 | |
|
都是好东西啊
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |