|
42 / 41 / 5
Регистрация: 27.11.2009
Сообщений: 100
|
|
Как узнать длину числа?02.05.2010, 11:46. Показов 148634. Ответов 45
Метки нет (Все метки)
Всем привет
Интересует такой вопрос: как можно узнать длину числа(колличество цифр в нём)? Т.е. записать длину в отдельную переменную. К примеру a = 124; и как скажем в переменную buf занести тогда число 3 и т.д.
0
|
|
| 02.05.2010, 11:46 | |
|
Ответы с готовыми решениями:
45
Как узнать длину массива? Узнать длину строки и длину каждого слова |
|
|
||
| 03.05.2010, 12:35 | ||
|
Методология (а не конкретное решение конкретной задачи) Manjak'а конкретно в данном случае оказалась более правильной. Ошибка, которую допустили в методе с делением, при подходе с стандартными функциями не проявилась бы по определению. Время, потраченное на реализацию, в обоих способах одинаковое (ибо и там и там всё решается парой строк). Но время на отладку в одном случае строго равно нулю, а в другом случае могло оказаться и фатально большим (в зависимости от конкретной программы, в которой бы решалась данная задача).
1
|
||
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 03.05.2010, 12:40 | ||||||
|
Не знаю, в цикле делить все время - лишние расходы по времени. Вот набросал функцию, которая показывает алгоритм(дихотомию напоминает
)
0
|
||||||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||||||
| 03.05.2010, 12:43 | ||||||
|
вот ещё вариант
0
|
||||||
|
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
|
||||||
| 03.05.2010, 12:59 | ||||||
0
|
||||||
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 03.05.2010, 13:03 | |
|
Roma_F, более чем глупо. Вы расписали цикл линейно. Какой в этом смысл?
0
|
|
|
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
|
|
| 03.05.2010, 13:07 | |
|
0
|
|
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 03.05.2010, 13:16 | |
|
Roma_F, деление на 2 интервала и проверка уже только на одном из них. Ознакомьтесь http://ru.wikipedia.org/wiki/%... 0%B8%D1%8F
Я смогу определить что число длиной в 10 знаков уже на 3 шаге, а вы только на 10. Разницу чувствуете?
0
|
|
|
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
|
||
| 03.05.2010, 13:21 | ||
|
M128K145, я имел в виду пост, который я процитировал
![]() Я всего лишь предложил ещё один вариант - какой в этом смысл? - наверное мне нечем занятся, вот сижу и "постю"
0
|
||
|
3 / 2 / 0
Регистрация: 01.04.2010
Сообщений: 30
|
|
| 03.05.2010, 13:21 | |
|
блин а в чём вся проблема с минимальными знаниями её легко решить
хотябы через if()
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 03.05.2010, 13:24 | ||
|
Евгений, я согласен с тобой, что в случае, если по результатам выполнения изначального варианта с циклом для нуля будет выделяться память, то результат будет плачевным.
Но телодвижения с переводом числа в строку и подсчет ее длины, по моему мению, выглядят как то чуждо для данной задачи. Кроме того, если учесть необходимость обработки отрицательных чисел, то появяться дополнительные телодвижения, связанные с необходимостью избавления от знака.
0
|
||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
||
| 03.05.2010, 13:24 | ||
Про скорость я тоже говорил. Вопрос: как почувствовать разницу, у меня 4 гига, 4 ведра*2.55 ГГц. Как не тыкал программу, не чувствуется.
0
|
||
|
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
|
|
| 03.05.2010, 13:27 | |
|
M128K145, я нашёл смысл в своём варианте ))
В билдере (у которого видимо туго с оптимизациями) он работает в 4 раза быстрее способа с циклом while. В code::blocks одинаково.
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 03.05.2010, 13:28 | ||
|
0
|
||
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 03.05.2010, 13:31 | |
|
Genius Ignat, это уже не программирование, а математика
Дело в подходе. Надо с самого начала привыкать писать что-то более-менее оправданное с точки зрения алгоритма, иначе все уравнения сейчас решались бы методом полного перебора и дихотомию бы не изобрели(а также золотого сечения, у них смысл один и тот же, только коефициенты разные). Согласитесь, это простая модель, а если ее перенести на более сложную? И действие - не деление, а вычисления уравнения 4 порядка с просчетом производных всех 3 степеней по всем переменным? CyBOSSeR, так для типа int все же Его при желании можно переделать
1
|
|
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 03.05.2010, 13:31 | |
|
CyBOSSeR:
А больше может и не надо.
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 03.05.2010, 13:36 | ||
|
2
|
||
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 03.05.2010, 13:50 | ||||||
|
Genius Ignat, тогда, скорее всего, разумнее все же переводить в строку и считать ее длину - 2(десятичная точка и '\0')
Добавлено через 4 минуты CyBOSSeR, можете расценивать как попытку выкрутится(но не везде сработает) ![]()
0
|
||||||
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
| 03.05.2010, 13:52 | |
|
numeric_limits<> для таких целей есть, хотя это и дурной стиль делать код зависимым от платформы
0
|
|
|
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
|
|
| 03.05.2010, 14:00 | |
|
0
|
|
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 03.05.2010, 14:18 | |
|
Не большой итог теме:
Оба способа деление /10 и itoa + strlen приемлемы, и дело не в быстродействии, а просто в решении задачи поставленной задачи. Просто деление: это скорее всего то что ожидает увидеть преподаватель... В любом случае все рассмотренные способы, автору могут пригодиться...
0
|
|
| 03.05.2010, 14:18 | |
|
Как узнать длину строки TCHAR? Как узнать длину строки, содержащей кириллицу?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|