Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 29
1

Из заданного множества int чисел определить максимальное подмножество

02.05.2015, 11:06. Показов 937. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Была поставлена задача: "Из заданного множества int чисел определить максимальное подмножество элементов со свойством, что все элементы простые числа, а их сумма не превышает заданного числа n". Суть в том, что по теории еще даже близко не подошли, но лабу сдавать надо) Код есть, но проблема в том, что он переходит эту самую границу суммы. Можно, пожалуйста, помощи с кодом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <ctime>
#include <conio.h>
#include <stdio.h>
#include <iostream>
using namespace std;
 
bool check( int n, int j){
 
        
    
        if (n == 1)
            return false;
        else if (n % j != 0 && j > 1){
            j--;
            check( n, j);
        }
        else if (j == 1)
            return true;
        else
            return false;
    
}
 
void main(){
 
    int *array = new int;
    int n, summa = 0, r, limit;
 
    setlocale(LC_ALL, "ru");
    srand(time(NULL));
    cout << "Введите кол-во элементов в массиве: ";
    cin >> n;
    cout << endl;
    for (int i = 0; i < n; i++)
    {
        array[i] = rand() % 10;
        cout << array[i] << " ";
 
 
    }
    cout << endl;
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++)
            if (array[i] > array[j]){
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
            }
    cout << endl;
    cout << "Отсортированный массив: ";
    for (int i = 0; i < n; i++)
        cout << array[i] << " ";
    cout << "\n";
    cout << "Введите лимит: ";
    cin >> limit;
    
        for (int i = 0; i < n; i++){
            int j = array[i] - 1;
            r = check(array[i], j);
            
                if (r){
                    if (summa < limit)
                    summa += array[i];
                    
                }
            
                
            }
        
    
 
    cout << endl << "\n" <<summa;
    
    _getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2015, 11:06
Ответы с готовыми решениями:

С множества чисел [1.n] выделить подмножество простых чисел p таких что p-2, p + 2 - сложные
С множества чисел выделить подмножество простых чисел p таких что p-2, p + 2 - сложные. я вод...

С множества чисел [1.n] выделить подмножество простых чисел вида p * q, где p, q - простые
С множества чисел выделить подмножество простых чисел вида p * q, где p, q - простые. Обратите...

Из множества чисел [1 .. n] выделить подмножество чисел вида p2, где p - простое.
Помогите написать программу. Из множества чисел выделить подмножество чисел вида p2, где p -...

Из множества вывести подмножество чисел
з множини чисел виділити підмножину складних чисел виду 6k+-1.

2
10 / 10 / 7
Регистрация: 21.12.2014
Сообщений: 28
02.05.2015, 13:19 2
Строка 62. Не проверяли сумму прежде чем сложить - т.е он проверил что 53 < 55, и сложил 53+9. Вот и перевалил границу лимита
C++
1
2
3
4
5
if (r){
                    if (summa + array[i] < limit)
                        summa += array[i];
 
                }
P.S память в куче взяли, а не отдали. Ай-ай-ай


P.P.S Помог - скажи "Спасибо")
1
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 29
02.05.2015, 16:12  [ТС] 3
Спасибо большое, чего-то я тупил
0
02.05.2015, 16:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2015, 16:12
Помогаю со студенческими работами здесь

С Множества чисел [ 1.n ] выделить подмножество
С Множества чисел выделить подмножество простых чисел p , таких что p + 2 тоже простие ( поиск &quot;...

Из множества чисел выделить подмножество простых чисел вида p*q
Из множества чисел выделить подмножество простых чисел вида p*q, где p, q - простые.

Из множества выделить подмножество нечетных чисел
Даны три множества X1,X2,X3, содержащие целые числа из диапазона 1...100. Известно, что мощность...

Найти максимальное подмножество последовательно идущих чисел
В множестве из N различных целых чисел найти максимальное подмножество последовательно идущих...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru