怎么用java实现输出a,b,c,d,e五个字符的所有可能的排列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用java实现输出a,b,c,d,e五个字符的所有可能的排列相关的知识,希望对你有一定的参考价值。

怎么用java实现输出a,b,c,d,e五个字符的所有可能的排列

参考技术A public class FullArray ...
public String[] s=..."a","b","c";
public void run()...
int j2; //指向要对换的位置
int sLength=s.length;
for(int i=0;i<getP(s.length);i++)... //外层循环以便获取全部组合
String[] tempString=s.clone(); //由于对象传的是句柄也就是地址,因此为保证原来数组不变,必须使用对象克隆
for(int j=0;j<i;j++)... //i次的对换
j2=j%(sLength-1);
change(j2,tempString);

for(int l=0;l<sLength;l++)... //输出这一次对换后的排列
System.out.print(tempString[l]);

System.out.println();


public int getP(int i)... //获得全排列数all
int all=1;
for(int j=i;j>0;j--)...
all=all*j;

return all;

public void change(int i,String[] tempString)...//
String t="";
t=tempString[i];
tempString[i]=tempString[i+1];
tempString[i+1]=t;

public static void main(String[] args)...
FullArray fa=new FullArray();
fa.run();

参考资料:http://www.diybl.com/course/3_program/java/javajs/2008315/104683.html

本回答被提问者采纳

蓝桥杯java 算法提高 扶老奶奶过街

一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。

  五个红领巾各自说话:

  A :我和E都没有扶老奶奶

  B :老奶奶是被C和E其中一个扶过大街的

  C :老奶奶是被我和D其中一个扶过大街的

  D :B和C都没有扶老奶奶过街

  E :我没有扶老奶奶


  已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街?

  若有多个答案,在一行中输出,编号之间用空格隔开。


  例如
  A B C D E(这显然不是正确答案)

public class Main {  
    public static void main(String[] args) {  
        int k , sum;  
        for (k = 1; k <= 5; k++) {  
            sum = 0;  
            if (k != 1 && k != 5)  
                sum++;  
            if (k == 3 || k == 5)  
                sum++;  
            if (k == 3 || k == 4)  
                sum++;  
            if (k != 2 && k != 3)  
                sum++;  
            if (k != 5)  
                sum++;  
            if (sum == 2)  
                System.out.print((char) (k - 1 + ‘A‘)+" ");  
        }  
    }  
  
}  

  

 






















以上是关于怎么用java实现输出a,b,c,d,e五个字符的所有可能的排列的主要内容,如果未能解决你的问题,请参考以下文章

java算法 蓝桥杯 扶老奶奶街

蓝桥杯java 算法提高 扶老奶奶过街

输入a,c,u,b,e,p,f,z倒序和正序输出用java程序怎么实现

C语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出

由0到4五个数字,组成5位数,每个数字用一次,但十位和百位不能为3(当然万位不能为0),输出所有可能的五位数

A push B present C push D present E怎么返回A