Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 25
1

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

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

Написать рекурсивную функцию вычисления количества цифр натурального числа.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2012, 22:19
Ответы с готовыми решениями:

Рекурсия: подсчет количества четных цифр числа (на С)
Написать рекурсивную функцию считывающую количество четных цифр числа. Плохо понял рекурсию...

Рекурсия: подсчет количества всех делителей целого числа
Недавно начал изучать С++ и дали такое вот задание: Рекурсивно описать функцию divs(N) для...

Рекурсивная функция для вычисления количества цифр натурального числа
Нужно написать рекурсивную функцию для вычисления количества цифр натурального числа. Подскажите...

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

7
Эксперт С++
5042 / 3103 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
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
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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
~ Эврика! ~
1254 / 1003 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
12.10.2012, 23:01 4
Ваша программа входит в бесконечный цикл при передаче ноля (хоть и правильно считает цифры для ненулевых).

Хотя, по идее не должна. Но у меня чего-то падает.
0
Эксперт С++
5042 / 3103 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
12.10.2012, 23:01 5
go, меньше нуля может быть, если в функцию передали отрицательное число. По факту 0 как результат функции указывает, что число изначально не было натуральным.
0
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
13.10.2012, 15:37 6
silent_1991, отрицательное число не является натуральным. http://ru.wikipedia.org/wiki/Натуральное_число
0
Эксперт С++
5042 / 3103 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
13.10.2012, 15:39 7
go, и как ты предлагаешь организовать защиту от дурака? Я свой вариант в третий раз объясняю: если гипотетический дурка передаст в функцию отрицательное число (или нуль, который также не является натуральным) - получит в ответ 0 (ни одно число не имеет длину 0).
0
Эксперт С++
4257 / 2231 / 203
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2012, 16:46

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

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

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

Рекурсия: вычисление количества цифр заданного натурального числа n
Напишите пж программу с рекурсивной функцией, вычисляющей количество цифр заданного натурального...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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