Теруски
Стародавні народи, зазвичай, записували числа за допомогою букв.
Так, у римській системі використовувались 7 букв: C, D, I, L, M, V та X, що дозволяло їм записувати числа від 1 до 3999.
Їх сусіди - теруски, також викорисовували сім букв: A, E, I, J, O, U та Y, але їм вдавалось зображати числа від 1 до 5040. Кожне число записується у вигляді рядка довжиною сім символів, у которому кожна з букв використовується рівно один раз. Список усіх рядків упорядковується за алфавітом, а число, що подається, дорівнює місцю у цому списку. Так, AEIJOUY = 1, AEIJOYU = 2, AEIJUOY = 3, аYUOJIEA = 5040.
Напишіть програму, яка визначає, як теруски записували задане число.
Вхідні дані
Програма отримує на вхід натуральне число Х від 1 до 5040.
Вихідні дані
Рядок з семи символів – зображення числа Х у терусків.
import java.util.Scanner;
public class Main {
private static int n;
public static void main(String[] args) {
n = new Scanner(System.in).nextInt();
permutation("AEIJOUY");
}
public static void permutation(String str) {
permutation("", str);
}
private static void permutation(String prefix, String str) {
int l = str.length();
if(l == 0) {
if(--n == 0) {
System.out.println(prefix);
System.exit(0);
} } else {
for (int i=0; i<l; i++)
permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+1));
}
}
}
Немає коментарів:
Дописати коментар