• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Решение в Java

Сейчас заметил помарку: в первой задаче второй цикл следует начинать не с 1, а с 0. Потому что максимальный элемент может быть и нулевым по номеру, а если как у Вас, то он пропустится.
 
Сейчас заметил помарку: в первой задаче второй цикл следует начинать не с 1, а с 0. Потому что максимальный элемент может быть и нулевым по номеру, а если как у Вас, то он пропустится.

Да-да, правильно, я его ещё вчера исправил на 0)
 
Всем доброго времени суток!
Третий день сижу над очередной задачей...
Проверить, есть ли в двоичной записи числа n хотя бы один 0. Если 0000...0001111111 - нулей нет...
Здесь, я думаю, лучше всего будет так:
1) Ввести переменную n, равную некоторому числу n.
2) Ввести переменные b=1, i=0; c;
3) Найти длину двоичной записи числа n, без нулей старших разрядов, т.е. если n=44, то двоичная запись будет 101100, длина записи равна 6.
4) Организовать цикл: пока i<6, то c=a&b; если c=0, то нули присутствуют, иначе b=b<<1;

Вопрос в том, что я не знаю, как найти длину двоичной записи числа...
Помогите, пожалуйста...
 
Уф, сделал... Выкладываю...
a - это n, так написал просто...
Может, можно как-нибудь сделать покороче?

int a=65525;
double i;
double b=0;
int f=0;
for(i=31; i>=1; i--){
double c = Math.pow (a, 1/i);
if (c<=2&c>1)
b=i;
}
int d=1;
int e=0;
for (i=0; i<b; i++){
e=a&d;
d<<=1;
if (e==0)
f++;

}
if(f==0)
System.out.println("Нулей нет");
else
System.out.println("Нули есть");
 
Назад
Сверху