Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2007, 16:57   #1
snake-as
Пользователь
 
Аватар для snake-as
 
Регистрация: 10.03.2007
Сообщений: 51
По умолчанию Помогите с перебором, пожалуйста

Вот такая задачка: есть последовательность целых положительных цифр от 1 до N. Нужно вывести на экран все подмножества данной последовательности( например: 123, 132, 213, 231... нельзя повторять, т.е. НЕЛЬЗЯ 122, 221, 133 и т.д.). Вот у меня что-то не получается.. Может кто-нибудь идеями поделится, в какую "сторону" думать. Буду очень благодарен..
snake-as вне форума Ответить с цитированием
Старый 06.12.2007, 20:01   #2
silversab
Пользователь
 
Регистрация: 26.11.2007
Сообщений: 12
По умолчанию

Вот, только это для строк:
Код:
#include <iostream.h>
#include <string.h>

void input(char *s) 
{
	cout<<"Input string: ";
	cin>>s;
	cout<<endl;
}
void newhead(char *news1,char *s1,char s)
{
	for(int i=0;i<strlen(s1);i++)
		news1[i]=s1[i];		
	news1[i]=s;
	news1[i+1]='\0';
}
void newtail(char *news,char *s)
{
	for(int i=0;i<strlen(s);i++)
		news[i]=s[i];
	news[i]='\0';
}
void del(char *news, int n)
{
	for(int i=n;i<(strlen(news));i++)
		news[i]=news[i+1];	
	for(int j=i+1;j<10;j++)
	  news[j]='\0';	
}
void perest(char *s1,char *s,int num,int sm)
{
	char news[10];
	char news1[10];

	if ((num==sm))
	{
		if((strlen(s1))==sm)
		   cout<<s1<<endl;
	}
	else
	{
		for (int i=0;i<sm;i++)
		{			
			newhead(news1,s1,s[i]);
			newtail(news,s);
			del(news,i);
			perest(news1,news,num+1,sm);
		}
	}
	
}
void main()
{
	char s1[10];	
	char s[10];	

	input(s);	
	s1[0]='\0';	
	perest(s1,s,0,strlen(s));
}
silversab вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста gamer123 Паскаль, Turbo Pascal, PascalABC.NET 12 03.06.2009 23:15
Помогите пожалуйста Rifel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 19.12.2006 14:13