java求递归算法,给定一个字符串123,两位数一组,可以分多少组,每一组分别是什么,递归算法怎么写?

如题所述

第1个回答  2013-04-18

这样就行了 aa方法会从输入字符串s中抽出2个字符组合的所有可能性。并且返回总共有多少种可能。

public class DFfsd {
public static void main(String[] args) {
String s="1234";
System.out.println(aa(s, 0, 1));
}
public static int aa(String s,int x,int y){
int t=0;
if(y==s.length()){
x++;
if(x<s.length()-1){
y=x+1;
}
}
if(x<s.length()-1){
System.out.println((char)s.charAt(x)+" "+(char)s.charAt(y));
t=aa(s,x,y+1)+1;
return t;
}
return 0;
}
}

这个百度把符号变了

public class DFfsd {
public static void main(String[] args) {
String s="1234";
System.out.println(aa(s, 0, 1));
}
public static int aa(String s,int x,int y){
int t=0;
if(y==s.length()){
x++;
if(x&amp;lt;s.length()-1){
y=x+1;
}
}
if(x&amp;lt;s.length()-1){
System.out.println((char)s.charAt(x)+" "+(char)s.charAt(y));
t=aa(s,x,y+1)+1;
return t;
}
return 0;
}
}

第2个回答  2013-04-18
private static List<String> combinations=new ArrayList<String>();
public static void recursive(final String str,final int index){
char[] chartNums=str.toCharArray();
for(int num=0;num<chartNums.length;num++){
String combination=chartNums[index]+""+chartNums[num]+"";
combinations.add(combination);
}
int added=index+1;
if(added<=chartNums.length-1){
recursive(str,added);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="123";
recursive(str,0);
System.out.println("共生成"+combinations.size()+"组数据,分别为:");
for(String com:combinations){
System.out.print(com+" ");
}
}追问

老哥,有点没看懂,要是三个一组呢?应该改什么地方或者 直接传一个变量进去?

本回答被网友采纳
第3个回答  2013-04-18

递归算法如下,传个参数进去就行了

List list = new ArrayList();
public void test(String str){
if(str.length() >= 2){
char[] strs = str.toCharArray();
for (int i = 1; i < strs.length; i++) {
list.add("" + strs[0] + strs[i]);
}
test(str.substring(1));
}
}

相似回答