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

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

Войти
Регистрация
Восстановить пароль
 
mihal
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 25
#1

Рекурсия: подсчет количества цифр натурального числа - C++

12.10.2012, 22:19. Просмотров 498. Ответов 7
Метки нет (Все метки)

Написать рекурсивную функцию вычисления количества цифр натурального числа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия: подсчет количества цифр натурального числа (C++):

Рекурсия: подсчет количества четных цифр числа (на С) - C++
Написать рекурсивную функцию считывающую количество четных цифр числа. Плохо понял рекурсию объясните на этом примере пожалуйста.

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

Написать рекурсивную функцию вычисления количества цифр натурального числа - C++
Как написать рекурсивную функцию вычисления количества цифр натурального числа?

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

Написать рекурсивную функцию вычисления количества цифр натурального числа(исправить код) - C++
Написать рекурсивную функцию вычисления количества цифр натурального числа. Я вот написал, но программа считает только первые 9 чисел!...

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

7
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.10.2012, 22:44 #2
C++
1
2
3
4
int digits_count(int number)
{
    return number <= 0 ? 0 : 1 + digits_count(number / 10);
}
Учитывая, что ноль не считаем натуральным числом.
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.10.2012, 22:58 #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
return number <= 0 ? 0 : 1 + digits_count(number / 10);
C
1
return !number ? 0 : 1 + digits_count(number / 10);
C
1
int number
Меньше нуля быть не может
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
12.10.2012, 23:01 #4
Ваша программа входит в бесконечный цикл при передаче ноля (хоть и правильно считает цифры для ненулевых).

Хотя, по идее не должна. Но у меня чего-то падает.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.10.2012, 23:01 #5
go, меньше нуля может быть, если в функцию передали отрицательное число. По факту 0 как результат функции указывает, что число изначально не было натуральным.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.10.2012, 15:37 #6
silent_1991, отрицательное число не является натуральным. http://ru.wikipedia.org/wiki/Натуральное_число
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
13.10.2012, 15:39 #7
go, и как ты предлагаешь организовать защиту от дурака? Я свой вариант в третий раз объясняю: если гипотетический дурка передаст в функцию отрицательное число (или нуль, который также не является натуральным) - получит в ответ 0 (ни одно число не имеет длину 0).
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.10.2012, 16:46 #8
если число 0 учитывать, то
C++
1
2
3
4
int Count(unsigned long a)
{
   return a < 10 ? 1 : 1 + Count(a / 10);
}
Можно так для целых со знаком
C++
1
2
3
4
5
int Count(long a)
{
   return labs(a) < 10 ? 1 : 1 + Count(a / 10);
}
в общем вариантов масса)
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 16:46
Привет! Вот еще темы с ответами:

Вывести все числа от 1 до заданного натурального числа n (рекурсия) - C++
Дано натуральное число n. Выведите все числа от 1 до n (Рекурсия) Ввод - 5 Вывод - 1 2 3 4 5 Как сделать...

Подсчет количества цифр в строке - C++
typedef { int c, d; } Dec; Dec Add(Dec a, Dec b) { Dec r; int la, lb, pw, x; r.c = a.c + b.c; la = 0; x = a.d; ...

Подсчет количества цифр в тексте - C++
С клавиатуры вводится строка. Составить программу, которая подсчитывает количество цифр в тексте; выводит на экран слова, начинающиеся с...

Подсчет количества цифр в текстовом файле - C++
написать программу,которая в текстовом файле,состоящем из строк не более 60 символов,находит количество цифр


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

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

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