黑马程序员技术交流社区
标题:
小疑问!请大神解答一下
[打印本页]
作者:
IT人
时间:
2013-12-26 14:58
标题:
小疑问!请大神解答一下
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] chs = new char[]{'a','b','c'};
Stack<Character> stack = new Stack<Character>();
for(int i = 1; i <= chs.length; i++){
combine(chs, 0, i, stack);
疑问就是在打印出【a】【b】【c】后. 然后在 forc循环中i=2的时候往函数combine传递参数的时候
打印出begin=1
1
[a, b]2
2
到这里了为什么begin=1和number=1而不是
begin=0和number=2???????????????????????????
begin1=1v1
1
begin=2
}
}
public static void combine(char []chs, int begin, int number, Stack<Character> stack){
System.out.println(1);
if(number == 1){
System.out.println("begin="+begin);
}
if(number == 2){
System.out.println("begin3333="+begin);
}
if(number == 0){
System.out.println(stack.toString()+begin);
return ;
}
if(begin == chs.length){
return;
}
stack.push(chs[begin]);
combine(chs, begin + 1, number - 1, stack);
System.out.println(2);
System.out.println("begin1="+begin+"v"+number);
stack.pop();
combine(chs, begin + 1, number, stack);
}
作者:
薛淑凯
时间:
2013-12-26 23:56
不明白楼主这个程序想干嘛,这么多迭代跟输出语句太不容易阅读了. 对于stack只要知道 先进后出 就行了,android里Activity就是这种机制
作者:
IT人
时间:
2013-12-27 10:35
我也是在玩网上看见的一个程序,这个程序运算结果就是打印出来一个字符串的组合例如:"abc"
a b c ab ac bc abc但是运算到上边我说的那一步!我有点不明白!为什么begin和number
的值变化!就是for循环,然后i = 2时候。
作者:
IT人
时间:
2013-12-28 19:22
还有大神给我解答一下么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2