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

Мультимножества, изменить вывод результата - C++

Восстановить пароль Регистрация
 
NAlt
0 / 0 / 0
Регистрация: 02.10.2014
Сообщений: 136
16.11.2014, 18:07     Мультимножества, изменить вывод результата #1
Программа работает без ошибок, но нужно чтобы выдавало результат немного иначе m1*z1+m2*z2+m3*z3+...+mk*zk=n
{(m1,z1);(m2,z2);(m3,z3);...(mk,zk)}
n это сумма
m1 кол-во вхождений элемента z1 и т.д.

к примеру
n=5
тогда
{(1,3);(1,2)}
{(1,5)}
{(1,4);(1,1)}
{(2,2);(1,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
#include <stdlib.h>
#include <iostream>
#include <set>
#define N 100
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    system ("color F0");
    int n,m[N],temp;
    for(int i=0;i<N;i++) m[i]=1;
 
    while(n<1 || n>N){
    cout<< "Введите значение для n от 1 до "<<N<<endl;
    cin>>n;
    if(n<1 || n>N) cout<< "Не допустимое число"<<endl;
    }
 
    temp=n-1;
 
    do
    {
        cout<<n<<"=";
        for(int i=0;i<n;i++)
        {
            if(i==n-1 || m[i+1]==0)
        {
                cout<<m[i]<<endl;
                break;}
            else cout<<m[i]<<"+";
        }
        if(m[temp]-1>=m[temp-1]+1 && temp>=1) m[temp]--,m[temp-1]++;
        else{
        m[temp-1]+=m[temp];
        m[temp--]=0;
        }
    }
    while(m[0]!=0);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 18:07     Мультимножества, изменить вывод результата
Посмотрите здесь:

не правильный вывод результата C++
C++ Вывод результата на экран
Вывод результата C++
C++ Вывод результата
Вывод результата поиска C++
C++ Как изменить форму результата временного интервала?
C++ Вывод результата
Вывод дробного результата C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru