您的位置:首页 > 编程语言 > Java开发

USTCOJ1308 全排列 JAVA读入模板

2012-08-27 17:02 344 查看
http://acm.ustc.edu.cn/ustcoj/problem.php?id=1308

JAVA。堆栈此题,利用b数组记忆功能避免一个数在一个位置上被重复选中。

import java.util.Scanner;

public class Main
{
public static void main(String[] args)
{
Scanner scanner=new Scanner(System.in);

int i,j,k,n;
n=scanner.nextInt();

boolean[] a=new boolean[15];
int[] b=new int[15];

for (i=1;i<=n;i++) a[i]=true;

j=1;
while (j>0)
{
if (j==(n+1))
{
for (k=1;k<=n;k++) System.out.print(b[k]);
System.out.println();
j--;
a[b[j]]=true;
}
else
{
for (k=b[j]+1;k<=n;k++)
if (a[k]==true)
{
b[j]=k;
a[k]=false;
j++;
break;
}

if (k>n)
{
j--;
b[j+1]=0;
a[b[j]]=true;
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: