算法
import java.util.Scanner;
public class TestForString {
static int total=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
while(true){
int length=scan.nextInt();
int[] arr=new int[length];
for(int i=0;i<arr.length;i++){
arr[i]=i+1;
}
arrangeSort(arr,0,length);
}
}
static void arrangeSort(int[]arr,int startIndex,int length){
if(startIndex==(length-1)){
for(int i=0;i<length;i++){
System.out.print(arr[i]);
}
System.out.println();
total++;
}else{
for(int i=startIndex;i<length;i++){
swap(arr,i,startIndex);
arrangeSort(arr,startIndex+1,length);
swap(arr,i,startIndex);
}
}
if(startIndex==0){
System.out.println("***********************"+total);
total=0;
}
}
static void swap(int[] arr,int indexI,int indexJ){
int temp=arr[indexI];
arr[indexI]=arr[indexJ];
arr[indexJ]=temp;
}
static void changePram(int[] arr){
arr=new int[10];
for(int i=0;i<10;i++){
arr[i]=i;
}
}
static void quickSort(int[] arr,int length){
int temp;
for(int i=length-1;i>0;i--){
int k=i;
for(int j=0;j<i;j++){
if(arr[j]>arr[k]){
k=j;
}
}
if(arr[i]<arr[k]){
temp=arr[i];
arr[i]=arr[k];
arr[k]=temp;
}
}
}
static void bubbleSortDown(int[] arr,int length){
for(int j=length-1;j>0;j--){
for(int i=0;i<j;i++){
if(arr[i]<arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
}
static void bubbleSort(int[]arr,int length){
for(int j=length-1;j>0;j--){
for(int i=0;i<j;i++){
if(arr[i]<arr[i+1]){
int temp= arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
}
static void swap(int a,int b){
int temp=a;
a=b;
b=temp;
}
static void quickDown(int[] arr,int left,int right){
if(left>=right){
return;
}
int i=left;
int j=right;
int temp=arr[i];
while(i<j){
while(i<j&&arr[j]<temp){
j--;
}
if(i<j){
arr[i]=arr[j];
i++;
}
while(i<j&&arr[i]>temp){
i++;
}
if(i<j){
arr[j]=arr[i];
j--;
}
}
arr[i]=temp;
quickDown(arr,left,i-1);
quickDown(arr,i+1,right);
}
static void quickSort(int[] arr,int left,int right){
if(left>=right){
return;
}
int temp=arr[left];
int j=right;
int i=left;
while(j>i){
while(j>i&&arr[j]>temp){
j--;
}
if(j>i){
arr[i]=arr[j];
i++;
}
while(i<j&&arr[i]<temp){
i++;
}
if(i<j){
arr[j]=arr[i];
j--;
}
}
arr[i]=temp;
quickSort(arr,left,i-1);
quickSort(arr,i+1,right);
}
static void sort(){
Scanner scan = new Scanner(System.in);
int a=scan.nextInt();
int b=scan.nextInt();
int c=scan.nextInt();
int[] arr=new int[3];
if(a>b){
if(a>c){
arr[0]=a;
if(c>b){
arr[1]=c;
arr[2]=b;
}else{
arr[1]=b;
arr[2]=c;
}
}else{
arr[0]=c;
arr[1]=a;
arr[2]=b;
}
}else{
//a<b
if(c<b){
arr[0]=b;
if(a<c){
arr[1]=c;
arr[2]=a;
}else{
arr[1]=a;
arr[2]=c;
}
}else{
arr[0]=c;
arr[1]=b;
arr[2]=a;
}
}
for(int i=0;i<3;i++){
System.out.println(arr[i]);
}
}
static void countDay(){
Scanner scan = new Scanner(System.in);
int year=scan.nextInt();
int month=scan.nextInt();
int day=scan.nextInt();
int totalDay=0;
if(month>1){
totalDay=countByMonth(month-1);
if(month>2){
if(isRunNian(year)){
totalDay+=1;
}
}
}
totalDay+=day;
System.out.println(totalDay);
}
static int countByMonth(int month){
int totalDay=0;
for(int i=1;i<=month;i++){
if(i%2==1){
totalDay+=31;
}else{
totalDay+=30;
}
}
if(month>=2){
totalDay-=2;
}
return totalDay;
}
static boolean isRunNian(int year){
if(year%100==0){
if(year%400==0){
return true;
}else{
return false;
}
}else if(year%4==0){
return true;
}else{
return false;
}
}
static void makeNumber(){
int[] four=new int[]{1,2,3,4};
int count=0;
int ge=0;
int shi=0;
int bai=0;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(j!=i){
ge=four[j];
for(int k=0;k<4;k++){
if(k!=i&&k!=j){
shi=four[k]*10;
for(int z=0;z<4;z++){
if(z!=k&&z!=j&&z!=i){
bai=four[z]*100;
count++;
System.out.println(bai+ge+shi);}
}
}
}
}
}
}
System.out.println("*********************************"+count);
}
static double[] luoDi(int count){
double[] a=new double[2];
if(count==1){
a[0]=100;
a[1]=50;
}
else if(count==2){
a[0]=200;
a[1]=25;
}
else{
double lastTotal=200;
double lastJump=25;
for(int i=3;i<=count;i++){
lastTotal+=lastJump*2;
lastJump/=2;
}
a[0]=lastTotal;
a[1]=lastJump;
}
return a;
}
static boolean wanQuanShu(int test){
int total=0;
if(test==1||test==2){
return false;
}
int sqr=(int) Math.sqrt(test);
for(int i=1;i<=sqr;i++){
if(test%i==0){
total+=i;
total+=test/i;
}
}
total-=test;
if(total==test){
return true;
}
return false;
}
static void addNumber(){
Scanner scan=new Scanner(System.in);
int factor=scan.nextInt();
int number=scan.nextInt();
int total=0;
for(int i=number;i>0;i--){
total+=factor*tenFactor(number-i)*i;
}
System.out.println(total);
}
static int tenFactor(int i){
int sum=1;
for(;i>0;i--){
sum*=10;
}
return sum;
}
static void countChar(){
int number=0;
int space=0;
int letter=0;
int others=0;
Scanner scan= new Scanner(System.in);
String str=scan.nextLine();
System.out.println(str);
char[] charArray=str.toCharArray();
for(char i:charArray){
System.out.print(i);
if((i>='a'&&i<='z')||(i>='A'&&i<='Z')){
letter++;
}else if(i>='0'&&i<='9'){
number++;
}else if(i==' '){
space++;
}else{
others++;
}
}
System.out.println();
System.out.println("number:"+number);
System.out.println("other:"+others);
System.out.println("letter:"+letter);
System.out.println("space:"+space);
}
static int zuiDaGongYueShu(int a,int b){
if(a<b){
int temp =a;
a=b;
b=temp;
}
if(a%b==0){
return b;
}else{
return zuiDaGongYueShu(b,a%b);
}
}
static int function(int month){
int total=1;
if(month==1||month==2){
total=1;
}
int pre1=1;
int pre2=1;
if(month>2){
int nextCount=3;
while(nextCount<=month){
total=pre1+pre2;
int temp=pre1;
pre1=total;
pre2=temp;
nextCount++;
}
}
return total;
}
static String grade(double mark){
String gra=(mark>=90)?"A":((mark>=60)?"B":"C");
return gra;
}
static boolean shuShu(int test){
if(test==2){
return true;
}
int squrt=(int) Math.sqrt(test);
for(int i=2;i<=squrt;i++){
if(test%i==0){
return false;
}
}
return true;
}
static boolean isShuiXianHua(int test){
int ge=test%10;
int shi=(test/10)%10;
int bai=(test/100);
int sum = ge*ge*ge+shi*shi*shi+bai*bai*bai;
if(sum==test){
return true;
}
return false;
}
static void fenjie(int test){
int yueShu1=(int) Math.sqrt(test);
while(true){
if(test%yueShu1==0){
break;
}else{
yueShu1--;
}
}
int yueShu2=test/yueShu1;
if(shuShu(yueShu1)){
System.out.println(yueShu1);
}else{
fenjie(yueShu1);
}
if(shuShu(yueShu2)){
System.out.println(yueShu2);
}else{
fenjie(yueShu2);
}
}
}