Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 20:31   #1
Pascal.t
 
Регистрация: 16.12.2010
Сообщений: 9
Вопрос Двойка

Подскажите пожалуйста
как очень быстро узнать сколько раз 2 входит в число

Код:
for j:=1 to h do
if i mod 2 = 0 then begin inc(k); i:=i div 2 end
не подходит

input | output
8 | 3
12 | 2
-- Будь благодарен, за то что имеешь.......
Pascal.t вне форума Ответить с цитированием
Старый 20.12.2010, 22:14   #2
iBuTTHead
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 35
По умолчанию

Код:
str(chislo,stroka);
for i:=1 to length(stroka) do
    if stroka[i]='2' then
            k:=k+1
iBuTTHead вне форума Ответить с цитированием
Старый 20.12.2010, 23:43   #3
Pascal.t
 
Регистрация: 16.12.2010
Сообщений: 9
Радость

Цитата:
Сообщение от iBuTTHead Посмотреть сообщение
Код:
str(chislo,stroka);
for i:=1 to length(stroka) do
    if stroka[i]='2' then
            k:=k+1
Да нет,
нужно найти количество раз деления числа на двойку
8=2*2*2*
12=2*2*3
16=2*2*2*2*2*2
18=2*9
-- Будь благодарен, за то что имеешь.......
Pascal.t вне форума Ответить с цитированием
Старый 21.12.2010, 18:01   #4
iBuTTHead
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 35
По умолчанию

Код:
uses crt;
var
   a:word;
begin
clrscr;
Read(a);
Write(a div 2);
readkey
end.
iBuTTHead вне форума Ответить с цитированием
Старый 21.12.2010, 18:57   #5
NioTo
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 32
По умолчанию

Код:
while number mod 2 = 0 do begin
number := number div 2;
inc(counter);
end;
NioTo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц