Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Комбинации, Комбинации сумм 
:(
    Опции темы
Garik1995
Дата 20.4.2015, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.10.2014

Репутация: нет
Всего: нет



Код

package combinations.of.summ;
import java.util.Scanner;
 
public class CombinationsOfSumm {
static int a[] = new int[100];
 
 
static void dec(int n , int k, int i) {
    
    if (n<0) return; //ничего не раскладываем
    // если 0 то раскладывать нечего
    if (n == 0) { 
        
        int j;
        for (j = i-1; j> -1; j--) {
            System.out.print (a[j]);
         }
        System.out.print("\n");
        
    }
    // в противном случае
    else {
        
        if (n - k >=0) {
            
            a[i] = k;
            dec(n - k, k, i+1);
            
            
        }
        if (k-1 >0) {
            dec(n, k-1, i);
            
        }
        
    }
    return;
}
    
    public static void main(String[] args) {
        int m,i,j;
        Scanner scanner = new Scanner(System.in);
        
        
        System.out.print("Задайте число ");
        m = scanner.nextInt();
        for (i=0; i<=m; ++i) {
            
            a[i] = 0;
            }
        System.out.println("Комбинации сумм: ");
        dec(m, m, 0);
    }
    
}

Есть программа, которая выводит комбинации сумм.Допустим мы вводим с консоли цифру 6. Программа выводит следующие комбинации сумм:
6
15
24
114
33
123
1113
222
1122
11112
111111
Нужно чтобы программа выводила те же комбинации сумм, но в другом порядке, то есть программа должна вывести следующее:
6
51
42
411
33
321
3111
222
2211
21111
111111
Как это реализовать?
PM MAIL   Вверх
Michael.de
Дата 20.4.2015, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: нет
Всего: 9



первый вариант вызывается в строках 13-17, второй: 18-22
Код

package combinations.of.summ;
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class CombinationsOfSumm
{
    static int a[] = new int[100];

    static void dec(int n, int k, int i, boolean c) {
        if (n >= 0) {
            if (n == 0) {
                int j;
                if (c) {
                    for (j = i-1; j > -1; j--) {
                        System.out.print (a[j] + " ");
                    }
                }
                else {
                    for (j = 0; j < i; j++) {
                        System.out.print (a[j] + " ");
                    }
                }
                System.out.print("\n");
            }
            else {
                if (n - k >=0 ) {
                    a[i] = k;
                    dec(n - k, k, i+1, c);
                }
                if (k-1 > 0) {
                    dec(n, k-1, i, c);
                }
            }
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Type a number: ");
        int m;
        try { m = scanner.nextInt(); }
        catch (InputMismatchException e) { m = 0; }
        scanner.close();
        for (int i = 0; i <= m; i++) a[i] = 0;

        System.out.println("small to big: ");
        dec(m, m, 0, true);

        System.out.println("big to small: ");
        dec(m, m, 0, false);
    }
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0719 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.