У меня есть проблема Java, что я не знаю, как решить эту программу является:Расставьте числа путем вычитания
два числа должны получили от пользователя п, к.
мне нужно найти permuation чисел от 1 до N, так что разность между двумя элементами> = K, например:
мы получаем число (п = 5 и к = 2)
и ответ должен быть 1,4,2,5,3:
и для (n = 2 и k = 2) ответа нет, потому что разница между 1 и двумя составляет 1 (1,2 или 2, 1).
Надеюсь, вы понимаете, чего я хочу.
и я пишу некоторые коды, которые являются неправильными:
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
int n = user_input.nextInt();
int k = user_input.nextInt();
int a ;
if (n%2==0) a = (n-2)/2; else a = (n-1)/2 ;
if (k!=a) {System.out.println("Impossible"); return;}
int h = k+1;
int value = 0;
int t = 1;
boolean b = true;
String res = "1 ";
while (value<n-1) {
value++;
if (b){
t = t + h;
res = res + t + " ";
b = false;
}else {
t = t-k;
res = res + t + " ";
b = true;
}
}
System.out.println(res);
}
Это домашнее задание? – xxlali
@xxlali почему? Его легко ?? –
На самом деле определение вашей задачи непонятно. Что такое «порядок числа»? Как насчет n? Почему нет ответа для n = 2, k = 2? – RealSkeptic