![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
turtles |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 17.2.2011 Репутация: нет Всего: нет |
Здравствуйте! У меня вот такой вопрос, по заданию Натуральное положительное число записано в переменную n.
Определить и вывести на экран, сколько цифр в числе n. В переменную записал число и вывел результат. А теперь немогу понять как можно подсчитать сколько цифр в числе. как это можно подсчитать?
|
|||
|
||||
rodnover |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Может типа такого:
|
|||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Натуральное число - целое число. А количество цифр равно количеству разрядов. А количество разрядов это число делений на 10, до тех пор пока результат деления не будет равен 0...
Это сообщение отредактировал(а) dobrolub - 17.8.2011, 06:57 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Идея верная, но цикл тут не нужен ![]()
Добавлено через 2 минуты и 4 секунды Ну и не забываем про Integer.MIN_VALUE конечно ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
а чем вам предлажуха rodnover'a не понравилась? А если число будет задано не в 10-й системе?..
|
|||
|
||||
rodnover |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Просто, коротко, но неоптимально.
![]() С логарифмом - самая лучшая идея. Это сообщение отредактировал(а) rodnover - 22.8.2011, 20:56 |
|||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
думаю, что ожидаемое решение - моё
![]() Это ведь вопрос из теста, правда? |
|||
|
||||
danco0x53 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.8.2011 Репутация: нет Всего: нет |
> Dobrolub: мне кажется, более симпатичным был бы вариант for(n=1; x>0; x /= 10); И еще Вы забыли Math.abs
> LSD - а еще не забудем про n=0 К тому же - вы абсолютно точно уверены, что ВСЕ степени десятки после взятия десятичного логарифма не вернут n,999999999999...? Javadoc говорит:
IMHO, rednover - просто, коротко, понятно дурвсем - и без необходимости что-то помнить. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Натуральные числа не включают 0 ![]()
Для int - уверен ![]() Кстати, в оригинале фигуриует double, так что без изменений будет работать только логарифм ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
priam220 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
я так понял речь идет о задании, коком то. но ведь речь может идти о колличестве чисел не только в целой части но и в мантиссе, с кажем до заданной точности. безусловно, логорифмирование выглядит очень математично, так что на собеседке, например, будет действовать блондинисто. Но в реальности думаю легче конвертить в строку, просплитать, если надо, конвертнуть в нужную систему исчисления и т.д. Интересно, насколько ресурсоемко вычисление логарифма? По сути это умножение с проверкой. Конвертация в строку, наверное медленнее, меня беспокоит метод getChars в первую очередь. кста, сами джависты вычисляют количество символов в int весьма орригинально и без логарифмов (Integer.class) ![]()
Это сообщение отредактировал(а) priam220 - 23.8.2011, 18:22 |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Одна команда ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
LSD, почему тогда в core не испльзовали логарифмические команды? Я о куске с массивом девяток...
Не догадались? ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Одна команда это в x87, а в Java это цельный вызов native функции со своим немаленьким оверхедом. Не думаю что JIT настолько интеллектуален (по крайней мере во времена написания этого кода), чтобы с оптимизировать это в одно команду. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
rodnover |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Почему-то мне кажется, что для такого действия достаточно интеллектуален.
С массивом супер просто решение! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |