`

递归排列组合

    博客分类:
  • Java
J# 
阅读更多

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class recursionTest {
   static int size;
   static int count;
   static char[] arrChar=new char[100];
  
  
   public static void main(String[] args) throws IOException {
  System.out.println("Enter a word:");
  String input=getString();
  size=input.length();
  count=0;
  for(int j=0;j<size;j++)
   arrChar[j]=input.charAt(j);
  doAnagram(size);
  
 }
  
   public static void doAnagram(int newSize) {
    if(newSize==1){   
   return ;
 }
    for(int j=0;j<newSize;j++){
     doAnagram(newSize-1);
     if(newSize==2)
      displayWord();
     rotate(newSize);
    }
 }
   public static void rotate(int newSize) {
  int j;
  int position=size-newSize;
  char temp=arrChar[position];
  for( j=position+1;j<size;j++)
   arrChar[j-1]=arrChar[j];
  arrChar[j-1]=temp;
 }
  
   public static void displayWord(){
    if(count<999)
     System.out.print(" ");
    if(count<99)
     System.out.print(" ");
    if(count<9)
     System.out.print(" ");
   
    System.out.print(++count+" ");
    for( int j=0;j<size;j++)
     System.out.print(arrChar[j]);
   
    System.out.print(" ");
    System.out.flush();
    if(count%6==0)
     System.out.println("");
   }
  
 public static String getString() throws IOException{
  InputStreamReader isr=new InputStreamReader(System.in);
  BufferedReader br=new BufferedReader(isr);
  String s = br.readLine();
  return s;
 }
   }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics