![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
demon071 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
Подскажите пожалуйста решение следующей проблемы:
При вводе целого числа типа int, должна выводиться длина этого числа. Объясните что нужно сделать. |
|||
|
||||
Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
О, господи, этот вопрос обсуждался буквально неделю назад в одном из соседних топиков:
Добавлено @ 10:32 Или так:
Это сообщение отредактировал(а) Voldemar2004 - 12.5.2007, 10:35 -------------------- i_i (';') (V) ![]() |
||||
|
|||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
А второй пример что делает?!
![]() Где там вообще хоть один int?! |
|||
|
||||
Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Ну пусть аргументом функции будет char*
![]() Добавлено через 1 минуту и 32 секунды Я подумал, что во 2-ом примере, пользователь будет вводить только числа типа int. Это сообщение отредактировал(а) Voldemar2004 - 12.5.2007, 10:37 -------------------- i_i (';') (V) ![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Так вы только запутаете человека. Длина строки символов ни какого отношения к длине числа int не имеет. |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
Оптимизированный вариант. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
||||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
Anikmar, ну не автору, так кому-нибудь ещё пригодится, да и потом я могу объяснить, если кому-то это понадобится
![]() -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Добавлено через 1 минуту и 8 секунд W4FhLF, мне интересно, объясни. ![]() -------------------- i_i (';') (V) ![]() |
||||
|
|||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
ok кол-во цифр в числе есть log10(|x|)+1
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
Добавлено @ 11:24 W4FhLF, мощно завернул ![]() Это сообщение отредактировал(а) vinter - 12.5.2007, 11:25 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
W4FhLF а модуль-то не надо в код ввести разве (формула-то одно, код чуток иное)? LenOfInt(-x) даст интересный результат...иль отрицательный числа = нечисла? а такто мысля однозначно правильная.. ну разве что только аппаратная зависимость появилась...
Это сообщение отредактировал(а) jonie - 12.5.2007, 13:16 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
jonie, special for you:
Enjoy! -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
betal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
![]() ![]() Добавлено через 11 минут и 47 секунд
Не все павильно. Оптимизированый код исче никому не помешал. Спасибо... --------------------
101100010100001101100001110100101111011легкие деньги |
|||
|
||||
Ln78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: 13 Всего: 15 |
W4FhLF, я с благоговением отношусь к ассемблерным вставкам, если только мне лично не нужно сопровождать такой код, тем более – искать в нём ошибки. Но в данном случае, учитывая, что в основу положена формула log10(|x|)+1, т.е. вычисление трансцендентной функции вместо операции с целыми числами, я усомнился в великой оптимизации: если я лично напишу код на ассемблере, а не предоставлю это компилятору, неужели только за счёт этого будет выигрыш в скорости? Решив проверить, написал 5 вариантов. Эти варианты относятся к положительным (начиная с 1) 4-байтным целым числам.
Оказалось, что первый (вроде как Ваш) работает неправильно. Время счёта для разных N: N = 10000000: Вар1 – 9937, Вар2 – 578, Вар3 – 391, Вар4 – 187, Вар5 – 15 N = 200000000: Вар3 – 9062, Вар4 – 3234, Вар5 - 562 N = 2000000000: Вар4 – 30875, Вар5 – 5015 Это сообщение отредактировал(а) Ln78 - 13.5.2007, 16:19 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |