Форум программистов, компьютерный форум CyberForum.ru

В каждом столбце обнулите минимальное количество элементов так, чтобы сумма элементов столбца не превышала заданную - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решите на С++ http://www.cyberforum.ru/cpp-beginners/thread122024.html
Помогите пожалуйста добрые умные люди!!)) 1) Дано натуральное число n. Проверить, есть ли в записи числа три одинаковые цифры(n<=9999). 2) Получите вектор X=(Xi) (i=1,2...n), элементы которого соответственно равны квадратам сумм элементов диагоналей матрицы А размера n*n; n=5. 3) Проверить, является ли частью данного слова некоторое подслово. (например для Маргарита подсловом является Рита)...
C++ Вынесение кода в отдельный файл. Чтобы понять ООП, пишу маленькую игрушку-пошаговый файтинг для курсовика. Пока консольный, linux. Логически состоит она из "Меню" и "Битвы". Пункты меню: 1. Битва //вызов модуля битвы. 2. Правила игры, Легенда, Об авторе //просто вывод текста из файла Битва: 1. Классы персонажей //базовый и наследуемые 2. Функция CreateEnemy //рандомно выбирает оппонента. 3. Функция fight //в неё... http://www.cyberforum.ru/cpp-beginners/thread122004.html
Простая программа на строки C++
Помогите с задачей: написать функцию, которая обращяет строку, введённую с клавиатуры, другими словами зеркальное отображение.
Метод Гаусса в С++ C++
Подскажите please, как запустить эту программу, через C++??? Решение системы линейных уравнений методом Гаусса. #include<io.h> #include "stdio.h" #include "conio.h" #include <windows.h> #include <iostream> #include <time.h>
C++ Visual C++ тема функции. Построить последовательность чисел Фибоначчи. http://www.cyberforum.ru/cpp-beginners/thread121983.html
Для заданного числа N>1 построить последовательность чисел фибоначчи А(0), А(1), .... А(n), которые изменяются по закону А(0)=А(i-1)+A(i-2). Определить значение третьего четного числа. Добавлено через 1 час 1 минуту подскажите как функцию для фибоначчи для числа n построить?
C++ Заменить цифры в строке на '*' Ввести с клавиатуры символьную строку. Длина строка не более 80 символов. Заменить все цифры, находящиется на нечетных позициях на символ '*'. Замену выполнить, начиная с позиции с номером N, который ввести с клавиатуры. Вывести обработанную строку на экран. Напишите пожалуйста.:p подробнее

Показать сообщение отдельно
PointsEqual
ниначмуроФ
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
26.04.2010, 15:52     В каждом столбце обнулите минимальное количество элементов так, чтобы сумма элементов столбца не превышала заданную
Не знаю как с трехмерной матрицей (я ее никогда не делал даже), а с одномерным массивом вот что получилось:

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
#include <iostream>
#include <vector>
#include <conio.h>
#include <iomanip>
 
int main()
{
    const int SIZE_MAS=5;
    std::vector<int> mas(SIZE_MAS);
    srand(time(NULL));
 
    mas[0]=8;
    mas[1]=1;
    mas[2]=2;
    mas[3]=4;
    mas[4]=3;
 
    std::cout<<std::endl<<"DO: "<<std::endl;
    int sum=0; //сумма элементов массива
    for (int i=0; i<mas.size(); i++){
       // mas[i]=1+rand()%10;
        sum+=mas[i];
        std::cout<<std::setw(3)<<mas[i];
    }
 
    int max_sum=0;
    std::cout<<std::endl<<"vvedite maximalnyu summu= ";
    std::cin>>max_sum;
 
//cам алгоритм
    sum-=max_sum;
    while(sum>0){
        int ii=0;
        int i=0;
        int max_element=0;
        while (i<mas.size()){ //поиск максимума
            if(mas[i]>=max_element && mas[i]<=sum){
                max_element=mas[i];
                ii=i;
            }
            ++i;
        }
        sum-=max_element;
        mas[ii]=0;
    }
//конец
 
    std::cout<<std::endl<<"POSLE: "<<std::endl;
    for (int i=0; i<mas.size(); i++)
    std::cout<<std::setw(3)<<mas[i];
 
    return 0;
}
но вследствии испытаний, я думаю что не к каждому масииву можно применить этот алгоритм, например к этому: 7 3 7 6 1, и если требуется сумма 5, то никак не получается.

Добавлено через 4 минуты
вообщем если в качестве контрольной суммы ввести число, которое можно составить из элементов массива, то все работает.
 
Текущее время: 19:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru