Алгоритм Задачи К Коду

Тема в разделе "Java", создана пользователем Amet13, 21 апр 2012.

  1. Amet13

    Amet13 New Member

    Регистрация:
    21 апр 2012
    Сообщения:
    2
    Симпатии:
    0
    Помогите написать алгоритм, на словах, к моему коду.
    задача размещения с повторениями и без
    вот код:
    Код (Text):
    import java.util.*;
    public class End2 {
    static int i = 1;
    static ArrayList<String> fullBrute = new ArrayList<String>();
    static void print(String s, int n, StringBuffer res) {
    if (n == 0) {
    System.out.println("№"+i+". "+res.toString());
    i++;
    }
    else
    for (int i = 0; i < s.length(); i++){
    String news = s.substring(0, i) + s.substring(i + 1, s.length());
    String simb = s.substring(i, i + 1);
    print(news, n - 1, (new StringBuffer(res)).append(simb));
    }
    }

    public static void brute(String l, int n){
    print(l, n, new StringBuffer());
    }
    public static void main(String[] args) {
    System.out.println("1. Введите в первой строке элементы размещений, например(123 или ABC)");        
    System.out.println("2. Введите во второй строке количество зарезервированных позиций, например(3)");
    int k;
    String n;
    Scanner in = new Scanner(System.in);
    n = in.next();
    k = in.nextInt();
    bruteOld(String.valueOf(n), k);
    System.out.println("Полученные размещения с повторениями:");
    for (int i = 1; i <= fullBrute.size(); i++){
    System.out.println("№"+i+". "+fullBrute.get(i-1));
    }
    System.out.println("Полученные размещения без повторений:");
    brute(n,k);
    }
    private static void bruteOld( String элементы_размещения, int количество ) {
    bruteOld( элементы_размещения, количество, new StringBuffer () );
    }
    private static void bruteOld (String элементы_размещения, int количество, StringBuffer output) {
    if (количество <= 0){
    fullBrute.add(output.toString());
    }
    else{        
    for (int i = 0; i < элементы_размещения.length(); i++){            
    output.append (элементы_размещения.charAt(i));
    bruteOld (элементы_размещения, количество - 1, output);
    output.deleteCharAt (output.length() - 1);
    }
    }
    }
    }
     
Загрузка...

Поделиться этой страницей