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

Найти представление числа S в виде суммы слагаемых из множества - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ количество маршрутов, ведущих узника к выходу http://www.cyberforum.ru/cpp-beginners/thread50576.html
Узник пытается бежать из замка, который состоит из MN квадратных комнат, расположенных в виде прямоугольника M×N. Между любыми двумя соседними комнатами есть дверь , однако некоторые комнаты закрыты...
C++ Оцените информационный объем предложения введенного текста человеком Считая, что каждый символ кодируется одним байтом, оцените информационный объем предложения введенного текста человеком http://www.cyberforum.ru/cpp-beginners/thread50574.html
C++ Как сделать заставку-картинку из файла
на языке С. Для создания игры нужно чтобы при запуске программы сначала появлялась заставка(картинка формата .bmp) Пробовала функцию fopen - что-то не получилось...(( учусь работать в Borlande
Не компилируется проект C++
Добрый день Странная проблема, которая появилась недавно : в студии проект создается, но не компилируется, ни при нажатии Ф7 и тд в папке проекта не создается папка debug c файлом .exe В чем...
C++ Возвращение функциями указателей http://www.cyberforum.ru/cpp-beginners/thread50536.html
Читаю про указатели, тут для примера,предоставляется код. Программа ищет какую-то подстроку в строке. Кто нибудь может объяснить,каким образом ищется подстрока из этого кода,если не сложно. Заранее...
C++ Проблема с фукнцией. Доброго времени. Проблема в след: Хочу чтобы в программе при неправильном ответе, через оператор if выводилась функция о неправильном ответе, но не получается ;(. Подскажите пожалуйста. #include... подробнее

Показать сообщение отдельно
<Norton>
Отдыхающий:)
94 / 91 / 10
Регистрация: 05.04.2009
Сообщений: 188
12.09.2009, 21:27
1.Банкомат
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 <conio>
using namespace std;
long int asum(long int sum[100],short unsigned int n);
void sort(long int *sum,short unsigned int n);
int main()
{
    short unsigned int n,xn=0;
    long int x[100],S,sum[100];
    cout<<"n= ";
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"x["<<i+1<<"]= ";
        cin>>x[i];
    }
    cout<<"S= ";
    cin>>S;
        sort(x,n);
    for(int i=0;i<n;i++)
    {
        if(asum(sum,xn)+x[i]<=S)
            sum[xn++]=x[i];
        if(asum(sum,xn)==S)
            break;
    }
    if(asum(sum,xn)<S)
        cout<<"impossible\n";
    else
        for(short unsigned int i=0;i<xn;i++)
            cout<<sum[i]<<" ";
        getch();
    return 0;
}
long int asum(long int sum[100],short unsigned int n)
{
    long int s=0;
    for(short unsigned int i=0;i<n;i++)
        s+=sum[i];
    return s;
}
void sort(long int *sum,short unsigned int n)
{
        long int temp;
        for(short unsigned int i=0;i<n-1;i++)
                for(short unsigned int j=0;j<n-i-1;j++)
                if(sum[j]<sum[j+1])
                {
                        temp=sum[j];
                        sum[j]=sum[j+1];
                        sum[j+1]=temp;
                }
}
Добавлено через 54 минуты
2. Расписание
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
#include <iostream>
#include <conio>
using namespace std;
bool comp(int in,int am[10000],int nm,int st[10000][2]);
int main()
{
    int n, st[10000][2], amax[10000], nmax=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>st[i][0];
        cin>>st[i][1];
    }
    for(int i=0;i<n;i++)
    {
        int am[10000], nm=1;
        am[0]=i;
        for(int j=i+1;j<n;j++)
                if(comp(j,am,nm,st))
                    am[nm++]=j;
        if(nmax<nm)
        {
            nmax=nm;
            for(int i=0;i<nm;i++)
                amax[i]=am[i];
        }
    }
    for(int i=0;i<nmax;i++)
        cout<<amax[i]+1<<" ";
        getch();
    return 0;
}
bool comp(int in,int am[10000],int nm,int st[10000][2])
{
    for(int i=0;i<nm;i++)
        if(st[in][0]>st[am[i]][0]&&st[in][0]<st[am[i]][1] || st[in][1]>st[am[i]][0]&&st[in][1]<st[am[i]][1] || st[in][0]<=st[am[i]][0]&&st[in][1]>=st[am[i]][1])
            return false;
        return true;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru