Board logo

标题: [数值计算] 批处理如何判断一个N位数中是否含有重复数字 [打印本页]

作者: rwxyxy    时间: 2009-5-11 18:25     标题: 批处理如何判断一个N位数中是否含有重复数字

如何判断一个N位数中是否含有重复数字;
如:一个5位数,12345;

[ 本帖最后由 rwxyxy 于 2009-5-11 19:10 编辑 ]
作者: 随风    时间: 2009-5-11 18:30

  1. @echo off
  2. :loop
  3. (
  4. setlocal enabledelayedexpansion
  5. set /a max=!random!,x=max
  6. for /l %%a in (0 1 9) do set x=!x:%%a= %%a !&set ".%%a="
  7. for %%a in (!x!) do (
  8.    if defined .%%a set flag=a
  9.    set .%%a=a
  10. )
  11. if defined flag (echo !max! 有重复数字) else echo !max! 没有重复数字
  12. )
  13. endlocal&pause>nul&goto loop
复制代码

作者: namejm    时间: 2009-5-11 19:03

  楼主的表达让人如坠五里雾中:按照标题的意思,是要判断一个N位数,但是要判断这个数怎么了呢?不明白。看了描述,似乎要判断一个N位数中是否含有重复数字,唉,还请楼主说清楚一点。

  如果要判断一个N位数中的数字是否有重复,可以先把这个数用空格、逗号、等号(也就是for中的分割符号)切分,放到for语句中检测,可以判断任意长度的数——不过,超过10位的数,铁定有重复的数字,无需再判断,2楼的就是这个思路。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2