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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2010, 21:03   #1
Trinity13
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 11
По умолчанию C++ Рекурсивная функция

Пожалуйста, помогите сделать задание:
Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную.
Trinity13 вне форума Ответить с цитированием
Старый 18.02.2010, 21:48   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Вот рекурсия вам!
Код:
#include <iostream>
using namespace std;

int main()
{
		int chislo;
		char buff[50];
		cin>>chislo;
		cout<<itoa(chislo,buff,2)<<endl;

		system("pause");
}
Cpluser вне форума Ответить с цитированием
Старый 18.02.2010, 21:57   #3
Trinity13
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 11
По умолчанию

Спасибо большое!!!
Но не могли бы Вы объяснить, где в данном коде сама рекурсивная часть, точнее как я понимаю, рекурсия вот это - "itoa(chislo,buff,2)", просто мне интересно, почему Вы ее не описывали и что за оператор system? что он делает?? Ну в общем, если Вам не сложно, не могли б Вы объяснить принцип работы этой программы!!! Плиииз!
Trinity13 вне форума Ответить с цитированием
Старый 18.02.2010, 22:11   #4
MacOSUser
Пользователь
 
Регистрация: 18.02.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Cpluser Посмотреть сообщение
Вот рекурсия вам!
Код:
#include <iostream>
using namespace std;

int main()
{
		int chislo;
		char buff[50];
		cin>>chislo;
		cout<<itoa(chislo,buff,2)<<endl;

		system("pause");
}
Читай задание: "Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную."
Весы в нижнем левом углу.
MacOSUser вне форума Ответить с цитированием
Старый 18.02.2010, 23:41   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Код:
#include <iostream>
using namespace std;

void DecToBin( int n ) {

   if ( n >= 2 ) {
      DecToBin( n/2 );
   }
   cout << n % 2;

   return;

}


int main () {

   int n;
   cout << "n = ? ";
   cin >> n;

   cout << n << " (Dec) = ";
   DecToBin( n ); 
   cout << " (Bin)" << endl;

   return 0;

}

Последний раз редактировалось Vago; 18.02.2010 в 23:43.
Vago вне форума Ответить с цитированием
Старый 18.02.2010, 23:45   #6
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

прошу прощения, а процедуры разьве не в паскале? или это вы так ф-ии называете в c/c++.

Последний раз редактировалось NiCola999; 18.02.2010 в 23:47.
NiCola999 вне форума Ответить с цитированием
Старый 18.02.2010, 23:53   #7
MacOSUser
Пользователь
 
Регистрация: 18.02.2010
Сообщений: 30
По умолчанию

Да, это мы, скромные сишнеги так называем функции, которые ничё не возвращают. Просто паскаль очень крутой язык и мы стараемся как-то подражать.
Весы в нижнем левом углу.
MacOSUser вне форума Ответить с цитированием
Старый 19.02.2010, 00:52   #8
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Цитата:
Читай задание: "Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную."
Ето я пошутил где наброски ево!
Cpluser вне форума Ответить с цитированием
Старый 19.02.2010, 01:06   #9
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Цитата:
Сообщение от Trinity13 Посмотреть сообщение
Спасибо большое!!!
Но не могли бы Вы объяснить, где в данном коде сама рекурсивная часть, точнее как я понимаю, рекурсия вот это - "itoa(chislo,buff,2)", просто мне интересно, почему Вы ее не описывали и что за оператор system? что он делает?? Ну в общем, если Вам не сложно, не могли б Вы объяснить принцип работы этой программы!!! Плиииз!
Мда, повеселило
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 15.10.2017, 13:18   #10
Nemkod
Новичок
Джуниор
 
Регистрация: 15.10.2017
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение
Код:
#include <iostream>
using namespace std;

void DecToBin( int n ) {

   if ( n >= 2 ) {
      DecToBin( n/2 );
   }
   cout << n % 2;

   return;

}


int main () {

   int n;
   cout << "n = ? ";
   cin >> n;

   cout << n << " (Dec) = ";
   DecToBin( n ); 
   cout << " (Bin)" << endl;

   return 0;

}
Прошу прощения, функция шикарна, но можно узнать зачем там "return;" в определении. Так принято писать или что? Спасибо заранее за ответ.
Nemkod вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивная функция Trinity13 Помощь студентам 8 14.02.2010 18:44
Рекурсивная функция Делфи Asira Помощь студентам 2 15.12.2009 17:43
Си++. Рекурсивная функция. Diamond2107 Помощь студентам 6 02.12.2009 19:48