请问楼主:是产生一个四位数都不重复的数,还是产生四个四位数都不重复的数??
思路:随机取出该数的千、百、十、个位的数字,然后判断该数是否跟前面取的数重复;还要判断是否已经取满四个数- @echo off
- setlocal enabledelayedexpansion
- set str=0123456789
- :main
- cls
- set var=
- :a
- set s1=!str:0=!
- set/a num=%random%%%9
- set num1=!s1:~%num%,1!
- set s2=!str:%num1%=!
- set/a num=%random%%%9
- set num2=!s2:~%num%,1!
- set s3=!s2:%num2%=!
- set/a num=%random%%%8
- set num3=!s3:~%num%,1!
- set s4=!s3:%num3%=!
- set/a num=%random%%%7
- set num4=!s4:~%num%,1!
- set num=!num1!!num2!!num3!!num4!
- set/a n=0
- for %%a in (!var!) do (
- set/a n+=1
- if %%a equ !num! goto :a
- )
- if !n!==4 (echo !var!&pause>nul&goto main) else (set var=!var! !num!&goto :a)
复制代码
[ 本帖最后由 sjzong 于 2009-4-25 15:55 编辑 ] |