|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
其实就是一个5位数、
每个数位展开为1个5位数,而这个数位上的数字,就代表1的位置。
如: 12325 就是 10000 01000 00100 01000 00001
从11111-55555的全部展开 即可。
- Sub test() 'by kagawa 2015/09/05
- Dim i&, j%, n%
-
- n = 5
- ReDim a%(1 To n), b%(1 To n ^ n, 1 To n * n)
- For j = 1 To n
- a(j) = 1: b(1, (j - 1) * n + 1) = 1
- Next
-
- For i = 2 To n ^ n
- For j = n To 1 Step -1
- If a(j) < n Then a(j) = a(j) + 1: Exit For '不足5时+1 否则进位
- Next
- For j = j + 1 To n
- a(j) = 1 '超5进位 后面数位上的数字都初始化=1
- Next
- '到这里就产生了1个新的5位数组合
- For j = 1 To n
- b(i, (j - 1) * n + a(j)) = 1 '把这个5位数组合 转换翻译为楼主需要的5*5展开格式
- Next
- Next
-
- [a1].Resize(i - 1, n * n) = b '输出结果到工作表
- End Sub
复制代码
|
|