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

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

Войти
Регистрация
Восстановить пароль
 
Parilo
14 / 2 / 0
Регистрация: 18.11.2011
Сообщений: 90
#1

Нужно количество цифр с рекурсивной функцией - C++

27.10.2012, 14:21. Просмотров 332. Ответов 7
Метки нет (Все метки)

Не могу найти ошибку. Надо найти кол-во цифр введённого числа с помощью рекурсивной функции.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int sum=0;
int quantity (int);
int quantity (int n)
{ if(n!=0) { sum++; 
  return quantity (n/=10); }
  else sum;
}
 
 int main ()
{int g;
 cin >> g;
 cout << quantity (g);
 
 return 0;
}
Добавлено через 3 минуты
всё нашёл, пропустил "return" перед sum.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 14:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно количество цифр с рекурсивной функцией (C++):

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

Программа с рекурсивной функцией - C++
Друзья, помогите пожалуйста написать вот такую программу в Dev с++ Сколькими способами можно отобрать команду в составе 5 человек из 8...

Заполнение массива рекурсивной функцией - C++
привет! рекурсия....это хуже всего!!! (( А рекурсивная функция, которая заполняет массив целых чисел значениями, вводимыми пользователем,...

Создать структуру с рекурсивной функцией - C++
Создать структуру в которой ввод и вывод информации будет осуществлятся с помощью рекурсивной функции

Написать программу с рекурсивной функцией - C++
Написать программу с рекурсивной функцией, вычисляющей: http://i065.***********/1212/09/1befc1906d10.png Добавлено через 14 часов 36...

Разница между рекурсивной функцией и обычной - C++
Как можно посчитать разницу между рекурсивной функцией и обычной? Там как то можно время работы функций высчитывать, как это сделать? Какие...

7
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
27.10.2012, 14:28 #2
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
#include <iostream>  
 
static int count = 0;
 
int recurs(int number) 
{   
    if(number == 0) 
        return 1; 
    else  
    { 
        count++;
        return recurs(number /= 10); 
    }
}
 
int main() 
{   
    int number;
    std::cout << "Inter a number " << std::endl; 
    std::cin >> number; 
    recurs(number); 
    std::cout << "Count is " << count << std::endl;
    
}
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
27.10.2012, 14:32 #3
Использовать глобальную переменную плохо. Без неё вполне можно обойтись:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
Надо найти кол-во цифр введённого числа с помощью рекурсивной функции.
*/
 
#include <iostream>
 
int DigitsNum(const int Value)
{
    return ((Value == 0) ? 0 : 1 + DigitsNum(Value / 10));
}
 
void ShowDigitsNum(const int Value)
{
    std::cout << Value << " - " << DigitsNum(Value) << '\n';
}
 
int main(void)
{
    ShowDigitsNum(100);
    ShowDigitsNum(1234);
    ShowDigitsNum(100500);
    system("pause");
}
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.10.2012, 14:34 #4
John Prick, а в числе 0 сколько цифр?))
1
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
27.10.2012, 14:35 #5
Цитата Сообщение от John Prick Посмотреть сообщение
Использовать глобальную переменную плохо. Без неё вполне можно обойтись:
в больших программах да, здесь нет. Попробуй свой код с 0.
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
27.10.2012, 14:36 #6
0! Ноль - это "ничего", "пустота", значит и цифр там нет Шутка, конечно. Для 0 у меня 0 выведет. Но зато можно использовать эту функцию несколько раз подряд. В случае с глобальной переменной, придётся обнулять её каждый раз перед вызовом.
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.10.2012, 14:38 #7
C++
1
2
3
4
unsigned int Count(unsigned int a)
{
   return a < 10 ? 1 : 1 + Count(a / 10);
}
1
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
27.10.2012, 14:41 #8
Ну или так
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2012, 14:41
Привет! Вот еще темы с ответами:

Разобраться с рекурсивной функцией обхода бинарного дерева - C++
Люди, помогите разобраться с рекурсивной функцией обхода бинарного дерева. Бьюсь головой об стену, не могу понять как она работает. ...

Написать программу с рекурсивной функцией вычисляющий выражение - C++
Написать программу с рекурсивной функцией, вычисляющей: s=cos(1+sin(2+cos(3+sin(4+cos(5+…)…)), используется n вложений.

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

Создать программу с рекурсивной функцией, которая будет вычислять делится ли число на 11 или нет - C++
Создать прорамму с рекурсивной функцией, которая будет вычислять делится ли число на 11 или нет.


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

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

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