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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 145
#1

Число из 10-ой в 2-ю ,через рекурсию. - C++

15.02.2012, 17:14. Просмотров 391. Ответов 4
Метки нет (Все метки)

Доброго дня. Требуется написать программу (из 2-ой в 10-ю) .С использованием рекурсии.
Выход данной программы 0. Что следует поправить?
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
#include <iostream>
#include <math.h>
#include <cstdlib>
 
 
using namespace std;
 
int dvoich(int x1,long c,int i);
  
int dvoich(int x1,long c,int i)   
{  
 
    int b;
    if(x1>0){
       b = x1 % 2;   
       x1 = (x1-b)/2;
       c += b * pow(10,i);
       return dvoich(x1,c,i);
    }
}   
  
int main()   
{
    int a,i;
        long c;
        i=0;//cтепень
        c=0;//число в 2-ой
    cout<<"Vvedite desyatichnoe chislo";  
    cin>>a; 
    cout<<dvoich(a,c,i);  
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2012, 17:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Число из 10-ой в 2-ю ,через рекурсию. (C++):

Число Фибоначчи через рекурсию - C++
Для заданного числа n посчитать числа ФИбоначчи (то есть число будет равно суме двух предыдущих), которое задано след. соотношениями:...

поиск через рекурсию - C++
С помощью массива структур описать каталог компьютерных игр, предусмотрев следующие характеристики: название, производитель, год издания,...

НОД через рекурсию - C++
Нужно написать программу для нахождения НОД через рекурсию по такому алгоритму: 1) задать два числа; 2) если числа равны, то взять...

Факториал через рекурсию - C++
Подскажите, как можно вычислить факториал некоторого числа через рекурсию функций (через цикл либо другим методом не интересует). Есть...

последовательность через рекурсию - C++
нужна ваша помощь задача такая: написать рекурсивную функцию для ввода последовательности чисел и вывода ее на экран в обратном...

Имитация цикла for через рекурсию - C++
Имитация цикла for через рекурсию

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
15.02.2012, 17:34 #2
Там же все в переменную c суммируется. Вот ее и выводи.

Или допиши так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int dvoich(int x1,long c,int i)   
{  
 
    int b;
    if(x1>0){
       b = x1 % 2;   
       x1 = (x1-b)/2;
       c += b * pow(10,i);
       return dvoich(x1,c,i);
    }
    return c;
}
P.S. сам алгоритм перевода неверный.

Добавлено через 10 минут
С учетом поправок
C++
1
2
3
4
5
6
7
8
9
10
11
12
int dvoich(int x1,long c,int i)   
{  
 
    int b;
    if(x1>0){
       b = x1 % 10;   
       x1 = (x1-b)/10;
       c += b * pow(2,i);
       return dvoich(x1,c,i+1);
    }
    return c;
}
0
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 145
15.02.2012, 18:18  [ТС] #3
Верно, ответ выводиться , но Не корректный.

Добавлено через 3 минуты
Vvedite desyatichnoe chislo247
23
RUN SUCCESSFUL (общее время: 4с)

Добавлено через 37 минут
Следует поменять ,значения в самом алгоритме.
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
15.02.2012, 20:32 #4
Почему не верно? Всё верно. Программа делает ровно то, что вы написали в первом посте
Цитата Сообщение от scofielcl Посмотреть сообщение
Требуется написать программу (из 2-ой в 10-ю)
Т.е. переводит число из двоичной в десятичную сс
0
murderer
3197 / 1420 / 72
Регистрация: 06.10.2010
Сообщений: 3,073
15.02.2012, 21:13 #5
C
1
2
3
4
5
6
7
8
9
10
11
#include "iostream"
void bin(int num){
    if(num>0){
        bin(num>>1);
        putchar((num&1)+'0');
    }
}
void main(){
    bin(13);
    getchar();
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2012, 21:13
Привет! Вот еще темы с ответами:

Найти тангенс x через рекурсию - C++
/*Вычисление тангенса задано формулой Найти тангенс(к примеру,пи/3, n=4) tg(x) = ---------x----------- x^2 ...

Не высчитывает корень через рекурсию - C++
double kor(double a) { double Xn=0.5*(1+a); if (fabs(Xn-a)&gt;0.0001) return a; else return Xn=0.5*(kor(a-1)+a/kor(a-1)); } void...

Описание функции через рекурсию - C++
Описать логическую функцию ПОТОМОК(А,В), проверяющую, является ли человек с именем В потомком (ребенком, внуком, правнуком) человека с...

Разложить число на множители используя рекурсию - C++
Нужно сделать программу вот условия : Разложить на множители число при помо рекурсии. В массиве целых чисел которые представляют собой...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.02.2012, 21:13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru