Вопрос № 175360: Здравствуйте, уважаемые эксперты. Как вычислить сумму цифр в ОЧЕНЬ большом числе. (такие числа, где сумма цифр больше, чем 127). Например, long double number = 958745123658999; // способ: sum+=number%10; number/10 и так пока nu...
Вопрос № 175366: Здравствуйте, уважаемые эксперты. Как так получается, что тип данных int может принимать значения больше, чем 65535? вот например в этом цикле: int i; for(i=1; ;i<1000000) … Спасибо....
Вопрос № 175371: Здравствуйте эксперты, подскажите пожалуйста, как отловить события выхода из программы (моей) в Microsoft Visual C++ чтобы сделать что-нить. Мне надо чтобы модальное окно появилось перед выходом. Выводить его умею, но не знаю как отловить выход из п...
Вопрос № 175374: Здравствуйте эксперты, подскажите пожалуйста, надо чтобы когда в CEdit вводят значения они отображались звездочками, а самому как-то знать что там вводят. Пишу в Visual C++...
Вопрос № 175377: Здравствуйте эксперты, подскажите пожалуйста, надо чтобы когда в CEdit вводят значения, надо контролировать то что вводят, и корректировать то что вводят, то есть подменять вводимое значение. Пишу в Visual C++...
Вопрос № 175379: Уважаемы эксперты! Помогите, пожалуйста Создать абстрактный класс CVerhicle. На его основе реализовать классы CPlane, CCar и CShip. Классы должны иметь возможност...
Вопрос № 175381: Вычислить сумму бесконечного ряда: S=1+2/2!+3/3!+4/4!........ 1. Для указанного количества членов ряда 2. С заданной точностью (точность и количество членов ряда вводятся клавиатуры) ...
Вопрос № 175360:
Здравствуйте, уважаемые эксперты.
Как вычислить сумму цифр в ОЧЕНЬ большом числе. (такие числа, где сумма цифр больше, чем 127). Например, long double number = 958745123658999; // способ: sum+=number%10; number/10 и так пока number>0. Но ведь я не могу пользоваться оператором % для long double . Как же тогда?
Отвечает Evgenijm, 10-й класс :
Здравствуйте, Иванов Андрей Владимирович.
Функция взятия остатка выглядит так: a % b = a - int(a / b) * b
Т.е. числа делим, дробный остаток выкидываем, умножаем обратно. Получается, что и искомый остаток выброшен. Отнимаем результат от первоначального числа - получаем остаток.
Если важна скорость, лучше вырезать из числа большие десятичные блоки-"цифры" (100, 1000, миллиард), приводить их в int или char и обрабатывать оператором %. Деление длинных и особенно дробных чисел
выполняется заметно медленнее.
Ответ отправил: Evgenijm, 10-й класс
Ответ отправлен: 16.12.2009, 20:53
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 257817
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Ashotn, 8-й класс :
Здравствуйте, Иванов Андрей Владимирович.
Надо превратить число в строку с помощью 64-битного варианта itoa. Посчитать сумму цифр становится элементарно, Ватсон.
{#/template js_tmpl_auth_reg_button}
{#template js_tmpl_auth_reg_descr}
{#if $P.login_register_tab == 1}
Для оформления подписки на выбранную рассылку, работы с интересующей вас группой или доступа в нужный вам раздел, просим авторизоваться на Subscribe.ru
{#/if}
{#if $P.login_register_tab == 2}
Для регистрации укажите ваш e-mail адрес. Адрес должен быть действующим, на него сразу после регистрации будет отправлено письмо с инструкциями и кодом подтверждения.
{#/if}
{#/template js_tmpl_auth_reg_descr}
{#template js_tmpl_soc_auth_reg_descr}
Или зарегистрируйтесь через социальную сеть.
{#/template js_tmpl_soc_auth_reg_descr}
{#template js_tmpl_auth_reg_soc}
Вам отправлено письмо для подтверждения вашего адреса {$P.register_confirm_mail}. Для подтверждения адреса перейдите по ссылке из этого письма.
{#/template js_tmpl_auth_reg_descr}
{#template js_tmpl_auth_reg_action}