keygen 发表于 2016-9-11 12:11

【笔记】+密码位数的控制问题

本帖最后由 keygen 于 2016-9-11 12:12 编辑

这段代码是用来控制密码的位数的,但是如果密码是四十多位甚至更长,总不能写四十多级甚至更多级for循环吧......
请问有没有更简便的办法?
                if (len == 12){
                        for (int a = 0; a < args.length ; a++) {
                              for (int b = 0; b < args.length ; b++) {
                                        for (int c = 0; c < args.length ; c++) {
                                                for (int d = 0; d < args.length ; d++) {
                                                      for (int e = 0; e < args.length ; e++) {
                                                                for (int f = 0; f < args.length ; f++) {
                                                                        for (int g = 0; g < args.length ; g++) {
                                                                              for (int h = 0; h < args.length ; h++) {
                                                                                        for (int i = 0; i < args.length ; i++) {
                                                                                                for (int j = 0; j < args.length ; j++) {
                                                                                                      for (int k = 0; k < args.length ; k++) {
                                                                                                                for (int l = 0; l < args.length ; l++) {
                                                                                                                        System.out.println(args+args+args+args+args+args+args+args+args+args+
                                                                                                                                                   args+args);
                                                                                                                }
                                                                                                      }
                                                                                                }
                                                                                        }
                                                                              }
                                                                        }
                                                                }
                                                      }
                                                }
                                        }
                              }      
                        }      
                }

loooooooong 发表于 2016-9-12 20:12

本帖最后由 loooooooong 于 2016-9-12 20:18 编辑

keygen 发表于 2016-9-11 23:58
知道密码组合的范围与长度,然后循环出来所有的可能性
//pow(x,y) x的y次幂
//length 数组的长度
//len密码的长度
for (int i = 0; i < int(pow(length, len)); i++){
int m = i;
for(int j = len-1; j >= 0; j--){
    int k = 0;

    k = int(m/int(pow(length, j)));
    m %= int(pow(length, j));

    printf("%c",args);
}
printf("");
}


dev-C++测试了一下,位数不能过多,java的话没试,你可以试试



keygen 发表于 2016-9-11 23:58

loooooooong 发表于 2016-9-11 12:53
楼主想实现一个什么样的功能?是把某一长度的密码全部穷举出来么?

知道密码组合的范围与长度,然后循环出来所有的可能性

Android_army 发表于 2016-9-11 12:25

这个循环我给差评。
万一位数多了不得死机?

keygen 发表于 2016-9-11 12:28

Android_army 发表于 2016-9-11 12:25
这个循环我给差评。
万一位数多了不得死机?

所以才过来请教大伙了,有没有好的解决办法?

桃花依旧笑春风 发表于 2016-9-11 12:38

没看懂你想表达什么。位数直接取length比较不就行了

君如兰 发表于 2016-9-11 12:45

这代码写的实在是有意思{:301_983:}

ilscom 发表于 2016-9-11 12:48

还没学C语言
只知道E语言可以用 计次循环...

loooooooong 发表于 2016-9-11 12:53

楼主想实现一个什么样的功能?是把某一长度的密码全部穷举出来么?

赤心 发表于 2016-9-11 12:54

感觉好复杂,容易死机

LeiSir 发表于 2016-9-11 13:48

控制位数的?看不出来!

10061 发表于 2016-9-11 15:15

页: [1] 2
查看完整版本: 【笔记】+密码位数的控制问题