![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 15:54 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » (已解决)生成随机数(78),显示结果是78=2+4+8+64 |
| 可打印版本 2,548 / 9 |
| 第1楼 jmz573515 | 发表于 2006-12-31 23:34 |
| 银牌会员 发帖 464 积分 1,212 | |
|
(已解决)生成随机数(78),显示结果是78=2+4+8+64 随机生成一个<=127的整数,用1,2,4,8,16,32,64几个数的和表示出来。
举两个例子: 如果随机数是1,那么我要的结果是1=1 如果随机数是78,那么我要的结果是78=2+4+8+64 最好是用VBS,当然BAT也感谢!(希望能给说一下思路,谢谢!) [ Last edited by jmz573515 on 2006-12-31 at 02:41 PM ] |
|
| 第2楼 redtek | 发表于 2006-12-31 23:42 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
兄需要的一部分思路下面的贴子可以参考~:)
九九乘法表 http://www.cn-dos.net/forum/viewthread.php?tid=26038&fpage=6 另:论坛中下面的贴子的起始思路也是来自namejm版主在写上面的《九九乘法表》代码中的感悟。 《 求一列数所有不同组合的和 》 http://www.cn-dos.net/forum/viewthread.php?tid=26180&fpage=1 另:随机数使用 %random% 生成。 ) 关于如何生成某个指定范围的随机数,论坛中已有长达n页的精彩探讨与算法,可在论坛“搜索”功能中查找到(使用标题/正文这两种方式)。 ) 关于如何生成n+x=……的算法,源于《九九乘法表》原理。 [ Last edited by redtek on 2006-12-31 at 10:48 AM ] |
|
| 第3楼 youxi01 | 发表于 2007-01-01 01:45 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
试试一下代码:
至于原理,类似于利用托盘天平加砝码的原则(由重到轻) |
|
| 第4楼 zh159 | 发表于 2007-01-01 02:15 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
楼上的输入数字不能大于最大数的两倍^_^
|
|
| 第5楼 Primalchaos | 发表于 2007-01-01 02:24 |
| 初级用户 发帖 19 积分 41 | |
|
确切的说是不能大于等于()中所有数的和
不过也很厉害了,楼主也说了<=127。 ^_^ |
|
| 第6楼 jmz573515 | 发表于 2007-01-01 03:40 |
| 银牌会员 发帖 464 积分 1,212 | |
|
好,加分!
|
|
| 第7楼 weapfe | 发表于 2007-01-01 05:49 |
| 初级用户 发帖 66 积分 144 | |
|
好像不行哦.大家请看:这是我的测试结果~~不知..
================================ 计算一个数字的计算式 ================================ 请输入一个数字:56 64+2+32+16+8=56 请按任意键继续. . . |
|
| 第8楼 weapfe | 发表于 2007-01-01 05:52 |
| 初级用户 发帖 66 积分 144 | |
|
哦,是我改动原代码所致!
我改的代码为: @echo off setlocal enabledelayedexpansion :12 cls echo ================================ echo. echo 计算一个数字的计算式 echo ================================ set /P EN=请输入一个数字: set /a var=%EN% for %%i in (64 32 16 8 4 2 1) do ( if !var! GEQ %%i ( set /a var=!var!-%%i set str=!str!%%i+)) echo %str:~0,-1%=%EN% pause goto 12 第一次我输入了68 第二次我输入了56 不知道原因,请达人解释一下~~ |
|
| 第9楼 youxi01 | 发表于 2007-01-01 05:53 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
我这里怎么是这样的呢?!
对了,没看到你的上面那句话!来了个goto, 解决办法,可以在set /p EN=...上面再加两句 set EN= set str= [ Last edited by youxi01 on 2007-1-1 at 05:59 AM ] |
|
| 第10楼 scriptor | 发表于 2007-01-01 13:38 |
| 银牌会员 发帖 555 积分 1,187 | |
|
又是一个计算题!!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |