[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 36# pan528
26楼代码 将if !j! leq 0 set j=n  改 set j=n 试下
应该这样了

TOP

回复 35# terse


我试了一下,26楼的代码只能二分法,21楼的代码是三分法。

TOP

回复 34# pan528
难道 我26楼代码 只能2分或者3分吗?
应该两则都兼容

TOP

回复 33# xxpinqz

是这个意思。但我没有按写程序的方式来表达,让你费心了。请原谅。

TOP

按我理解,就是下面这意思:
假设总行数n,列数l,则行数h=n/l,余数y=n%%l
一、当余数y=0,则直接输出。
二、  余数y>0,则:
                1、l大于h,则前y列各加一行为h+1,后l-y列为h行
                2、l小于等于h,则前l-1列各加一行为h+1,余者为最后一列即n-(l-1)*(h+1)行

改下代码半小时不到,理解楼主的意思花了两天最后还是靠瞎猜出来的。
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 31# terse

二十一楼就是三分法。

TOP

我的理解  前面几个应该就是 你所谓的3分法吧

TOP

回复 29# terse

三分法就是:在上面二分法的基础上,对切分列数小于每列行数的情形,用另一种方法排列,即把所有空格放在最后一列。
比如:
二分法:
1        10        19        27
2        11        20        28
3        12        21        29
4        13        22        30
5        14        23        31
6        15        24        32
7        16        25        33
8        17        26        34
9        18
三分法
1    10   19   28
2    11   20   29
3    12   21   30
4    13   22   31
5    14   23   32
6    15   24   33
7    16   25   34
8    17   26
9    18   27

TOP

你所谓的 3分法  是什么样的分法
上面取得跳格键

TOP

本帖最后由 pan528 于 2013-6-5 20:46 编辑

回复 26# terse

测试通过!代码挺精炼的。如果能改成三分法就更完美了。谢谢!

能解释一下,下面代码的含义吗?

for /f "delims=U" %%a in ('cmd /u /c echo 唉') do

TOP

现在楼主的意图出来了 算是理解了

TOP

还是计算错了 这个也只是简单测试
  1. @echo off&setlocal enabledelayedexpansion
  2. set L=5
  3. set "file=a.txt"
  4. for /f "delims=U" %%a in ('cmd /u /c echo 唉') do set "tab=%%a"
  5. for /f "usebackq tokens=*" %%i in ("%file%") do set /a N+=1&set #!N!=%%i
  6. set /a h=(n+l-1)/l,j=(n%%l)*H,_i=h-1
  7. if !j! leq 0 set j=n
  8. for /l %%i in (1 1 %n%) do (
  9.     if %%i leq %j% (
  10.        set /a "m=(%%i-1)%%h+1"
  11.     ) else set /a "m=(%%i--~j)%%_i+1"
  12.       for %%j in (!m!) do set "$%%j=!$%%j!%tab%!#%%i!"
  13. )
  14. (for /l %%i in (1 1 %h%) do for /f "tokens=*" %%j in ("!$%%i!") do echo %%j)>csm.txt
  15. more /t16 csm.txt >nmn.txt
  16. pause
复制代码

TOP

是21楼代码那样的效果?
呵呵,晕倒,一句话能交代清楚的问题,被你天书般的描述弄的大家头都晕了。
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 20# terse

是一个二分法的切分程序。
通过了34/11的情况,但 34/4时,就出错了,第三列和第四列顺序都出错了,结果如下:
1               10              23              31
2               11              24              32
3               12              25              33
4               13              26              34
5               14              19              27
6               15              20              28
7               16              21              29
8               17              22              30
9               18

TOP

回复 21# xxpinqz
谢谢!终于有了三分法的切分程序。
慢慢消化,学习学习。

TOP

返回列表