powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Рекурсивная функция
6 сообщений из 6, страница 1 из 1
Рекурсивная функция
    #33374987
Marik_1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

Помогите пожалуйста написать рекурсивную функцию которая
будет получать целое число и выводить все варианты этого числа состоящие из 0 и 1
например: число 4
вывод:
1111
1100
1101
1100
1011
1010
1001
1000

0111
0110
0101
0100
0111
0010
0001
0000

Заранее спасибо
...
Рейтинг: 0 / 0
Рекурсивная функция
    #33375302
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция варьирует i-ый разряд и вызывает себя для варьирования i+1-го разряда.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
Рекурсивная функция
    #33375334
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include <limits.h>
#include <iostream>

using namespace std;

void func(unsigned int n)
	{
	unsigned int i,m=n;
	static unsigned int bits=sizeof(n)*CHAR_BIT;
	static unsigned int mask = ( 1 <<(bits- 1 ));

	for(i= 0 ; i< bits; ++i, m<<= 1 ) cout << ((m&mask)? 1 : 0 );
	cout<<endl;
	if(n) func(--n);
	}
int main(int argc,char *argv[])
	{
	func( 16 );
	return  0 ;
	}
...
Рейтинг: 0 / 0
Рекурсивная функция
    #33375391
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неправильно понял условие. Точнее будет так:

Код: plaintext
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.
#include <limits.h>
#include <iostream>

using namespace std;

void func(unsigned int n, unsigned int mm=((unsigned int)- 1 ))
	{
	unsigned int i,m;
	static unsigned int bits=sizeof(n)*CHAR_BIT;
	static unsigned int mask = ( 1 <<(bits- 1 ));


	if(n>bits || n== 0 ) return;
	
	m=mm<<(bits-n);
	mm=m>>(bits-n);
	for(i= 0 ; i<n; ++i, m<<= 1 ) cout << ((m&mask)? 1 : 0 );
	cout<<endl;
	if( (--mm)!=((unsigned int)(- 1 ))) func(n,mm);
	}
int main(int argc,char *argv[])
	{
	func( 4 );
	return  0 ;
	}
...
Рейтинг: 0 / 0
Рекурсивная функция
    #33375469
Marik_1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cпасибо !
...
Рейтинг: 0 / 0
Рекурсивная функция
    #33375729
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять упражнения ... да и зачем тут рекурсия ? все циклом решается, простым инкрементом целого числа.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Рекурсивная функция
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]