[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
来一个偏方 虽然显示不慢 但理论上效率不高 不介意吧 o(∩_∩)o 只是偏方
@echo off
for %%a in (3 2008 11 19 777 23 2014 453 789 51) do set _%%a=exist
for /l %%a in (1,1,3000) do (if defined _%%a call,set n=%%n%% %%a)
echo %n%
pause

[ 本帖最后由 523066680 于 2008-8-21 21:51 编辑 ]
1

评分人数

    • pusofalse: 跟我的方案一样,的确很偏。PB + 2

TOP

原帖由 terse 于 2008-8-21 14:01 发表
还是用补位效率高
…… set .!str:~-10! !random!=%%i……

这里random是否起着一定作用。

TOP

问题出来了,
虽然偏方的代码不长,但是如果排序的数字 有几个是相同滴咋办

TOP

以上部分代码考虑了相同的数 有的没有考虑 。有相同的数 只显示了一次。
(嘿!!!!凭什么我写那个跟你想的¥!@#%@##~!#        就只加我2分啊)

[ 本帖最后由 523066680 于 2008-8-23 11:41 编辑 ]

TOP

居然没人理我也……17楼的思路是可以完善到 存在重复的数的,
(呜呜 我读书的时候想过这个思路的 估计false也不会考虑给我加分了)
以下是17楼思路的更新版本  允许存在相同的数
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set hang=3 2008 11 19 777 23 2014 453 789 51 3 3 4 2014
  4. set n=0
  5. for %%a in (%hang%) do (
  6.   set /a num=1,n+=1
  7.   for %%b in (%hang%) do (
  8.     if %%a gtr %%b set /a num+=1
  9.   )
  10. call :next !num!
  11. set !num!=%%a
  12. )
  13. for /l %%a in (1,1,%n%) do echo !%%a!
  14. pause
  15. goto :eof
  16. :next
  17. if defined %num% (set /a num+=1 &goto :next)
复制代码

[ 本帖最后由 523066680 于 2008-8-23 11:37 编辑 ]
2

评分人数

TOP

返回列表