自学内容网 自学内容网

题目 1913: 蓝桥杯-排列数

题目描述:

0、1、2三个数字的全排列有六种,按照字母序排列如下:
012、021、102、120、201、210
输入一个数n
求0~9十个数的全排列中的第n个(第1个为0123456789)。

代码:

package lanqiao;

import java.math.BigInteger;
import java.util.*;

public class Main {
    static int n;
    static int sum = 0;
    static int a[] = new int[12];
    static int vis[] = new int[12];
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        dfs(0);
    }

    public static void dfs(int m)
    {
        if(m == 10){
            sum ++;
            if(sum == n)
            {
                String s = "";
                for(int i = 0;i <= 9;i ++)
                {
                    s += a[i];
                }
                System.out.println(s);
            }
            return;
        }

        for(int i = 0;i <= 9;i ++)
        {
            if(vis[i] == 0){
                vis[i] = 1;
                a[m] = i;
                dfs(m + 1);
                vis[i] = 0;
            }
        }
    }
}


原文地址:https://blog.csdn.net/weixin_64443786/article/details/136558376

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!