|
42 / 41 / 5
Регистрация: 27.11.2009
Сообщений: 100
|
|
Как узнать длину числа?02.05.2010, 11:46. Показов 147636. Ответов 45
Метки нет (Все метки)
Всем привет
Интересует такой вопрос: как можно узнать длину числа(колличество цифр в нём)? Т.е. записать длину в отдельную переменную. К примеру a = 124; и как скажем в переменную buf занести тогда число 3 и т.д.
0
|
|
| 02.05.2010, 11:46 | |
|
Ответы с готовыми решениями:
45
Как узнать длину массива? Узнать длину строки и длину каждого слова |
|
|
||
| 03.05.2010, 12:35 | ||
|
Методология (а не конкретное решение конкретной задачи) Manjak'а конкретно в данном случае оказалась более правильной. Ошибка, которую допустили в методе с делением, при подходе с стандартными функциями не проявилась бы по определению. Время, потраченное на реализацию, в обоих способах одинаковое (ибо и там и там всё решается парой строк). Но время на отладку в одном случае строго равно нулю, а в другом случае могло оказаться и фатально большим (в зависимости от конкретной программы, в которой бы решалась данная задача).
1
|
||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 03.05.2010, 12:40 | ||||||
|
Не знаю, в цикле делить все время - лишние расходы по времени. Вот набросал функцию, которая показывает алгоритм(дихотомию напоминает
)
0
|
||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,978
|
||||||
| 03.05.2010, 12:43 | ||||||
|
вот ещё вариант
0
|
||||||
|
332 / 247 / 32
Регистрация: 13.12.2009
Сообщений: 589
|
||||||
| 03.05.2010, 12:59 | ||||||
0
|
||||||
|
8384 / 3617 / 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 / 3617 / 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 / 3617 / 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 / 3617 / 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 | |
|
Помогаю со студенческими работами здесь
40
Как узнать длину строки TCHAR? Как узнать длину строки, содержащей кириллицу?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|