Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 07.09.2016
Сообщений: 1
1

P-ичный перебор. Поиск всех арифметических прогрессий

07.09.2016, 03:51. Просмотров 738. Ответов 0


Добрый день! Помогите с решением задачи, желательно кодом.
В массив записывается N натуральных чисел, всего не более 20. Необходимо "вычеркнуть" (то бишь, как я понимаю, пропустить в цикле) некоторые из них (не более N-3) так, чтобы из всех оставшихся можно было составить фрагмент арифметической прогрессии.
Пробовал написать сам, но не могу понять, почему алгоритм не ищет все прогрессии.
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Vector <Integer> result = new Vector<>();
int dif = 0;
        for(int i = 0; i<len; i++) {
            result.add(myArray[i]);  //myArray содержит N чисел
            for (int j = i+1; j < len; j++) {
                dif = myArray[j]-myArray[i];
                result.add(myArray[j]);
                for(int k = j+1; k<len; k++) {
                    if ((myArray[k] - result.lastElement()) == dif) {
                        result.add(myArray[k]);
                    }
                }
                if (result.size() > 2) {
                    System.out.println(result.toString());
                }
                result.clear();
            }


Добавлено через 1 час 57 минут
Понял, кажется, и теперь работает, должно быть. Проверьте, что ли=)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int dif = 0;
        for(int i=0; i<len; i++){
            for(int j=i+1; j<len; j++){
                result.add(myArray[i]);
                dif = myArray[j]-myArray[i];
                for(int k=j; k<len; k++) {
                    if (myArray[k] - result.lastElement() == dif) {
                        result.add(myArray[k]);
                    }
                }
                if (result.size() > 2) {
                    System.out.println(result.toString());
                }
                result.clear();
 
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2016, 03:51
Ответы с готовыми решениями:

Кол-во арифметических прогрессий
Даны натуральные числа N и K напишите программу, которая определит количество возрастающих ...

Обобщение суммирования арифметических прогрессий
Всем привет. Не могу решить задачу. Заранее спасибо тем, кто откликнулся. 1*4 + 2*7 + 3*10 + ......

Сумма сумм арифметических прогрессий
Когда я писал одну программу, мне понадобилось вывести обобщенную формулу для такой зависимости: ...

Существует ли эн-ичный поиск?
Интересно задание мне дали, сравнить эффективность двоичного, троичного и n-ичного поиска. Найти...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2016, 03:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Найти сумму и произведение всех натуральных чисел от 1 до 50, не используя формулы прогрессий.
Найти сумму и произведение всех натуральных чисел от 1 до 50, не используя формулы арифметической и...

Массив: Подсчет всех средних арифметических всех отрицательных и всех положительных чисел...
дано масив А(1..n) скласти праграму підрахунку всіх середніх арифмитичних всіх відємних і всіх...

Подсчет средних арифметических всех отрицательных и всех положительных чисел массива
Дан массив А . Составить программу подсчета средних арифметических всех отрицательных и всех...

Составить программу подсчета средних арифметических всех отрицательных и всех положительных чисел
дано массив А (1..n) составить праграму подсчета всех средних арифмитичних всех отрицательное и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.