Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Pavlov_Mikhail
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 20
#1

Поделитесь советом. Как сократить еще 1 символ. =) - C++

10.02.2014, 15:37. Просмотров 276. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
c>>a;
    a--;
    while(g+=a&1, a/=2);
    o<<g%3;
Подскажите, пожалуйста, реально ли укоротить ее еще? )))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2014, 15:37     Поделитесь советом. Как сократить еще 1 символ. =)
Посмотрите здесь:

Как сократить до инициалов? C++
C++ Корбен_Даллас-- //Как сократить текст пр-мы?)))
Можно ли как-то сократить объявления using в начале программы? C++
Как сократить время работы программы?! C++
C++ Как сократить запись?
Можно ли еще сократить код? C++
C++ Массив строк. Определить количество слов, у которых первый символ встречается в слове еще хотя бы один раз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
10.02.2014, 15:43     Поделитесь советом. Как сократить еще 1 символ. =) #2
Пробел убрать, а можно так если не ошибся:
C++
1
2
3
4
c>>a;
    a--;
    while(g+=a&1)a/=2;
    o<<g%3;
Ilot
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 5
Завершенные тесты: 1
10.02.2014, 15:47     Поделитесь советом. Как сократить еще 1 символ. =) #3
C++
1
a/=2
Лучше использовать побитовый сдвиг. Работает шустрее:
SatanaXIII
10.02.2014, 15:48
  #4

Не по теме:

Ilot, это оффтоп.

Ilot
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 5
Завершенные тесты: 1
10.02.2014, 15:51     Поделитесь советом. Как сократить еще 1 символ. =) #5
Может тогда так?
C++
1
2
3
c>>a;
    while(g+=--a&1)--a;
    o<<g%3;
Хотя надо бы проверить будет ли это работать так же как и исходная программа...
Pavlov_Mikhail
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 20
10.02.2014, 18:17  [ТС]     Поделитесь советом. Как сократить еще 1 символ. =) #6
Цитата Сообщение от mustimur Посмотреть сообщение
Пробел убрать, а можно так если не ошибся:
C++
1
2
3
4
c>>a;
    a--;
    while(g+=a&1)a/=2;
    o<<g%3;
пробелы не в счет. иначе следует весь код в одну строчку слить )))
так цикл не остановится. если g>0 то он будет виснуть

Добавлено через 2 минуты
Цитата Сообщение от Ilot Посмотреть сообщение
Может тогда так?
C++
1
2
3
c>>a;
    while(g+=--a&1)--a;
    o<<g%3;
Хотя надо бы проверить будет ли это работать так же как и исходная программа...
здесь на каждом шаге происходит двойное отнимание, а следует делить. да и цикл тоже не остановится при g>0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
10.02.2014, 20:15     Поделитесь советом. Как сократить еще 1 символ. =) #7
А если так:
C++
1
while(g+=a=a<<1&1);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 10:54     Поделитесь советом. Как сократить еще 1 символ. =)
Еще ссылки по теме:

Скажите, пожалуйста, возможно ли код сократить еще? C++
Путь к файлу, как сократить? C++
C++ Как сократить запись?
C++ Как сократить запись при инициализации статических переменных?
Как можно сократить массив? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Pavlov_Mikhail
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 20
11.02.2014, 10:54  [ТС]     Поделитесь советом. Как сократить еще 1 символ. =) #8
Цитата Сообщение от mustimur Посмотреть сообщение
А если так:
C++
1
while(g+=a=a<<1&1);
результат другой. я сделал по другому, но wa1, хотя при сравнение работы программ рабочей-длинной и рабочей-короткой ответ один и тот же. код
C++
1
2
for (I >> a, a--; g += a & 1, a /= 2;);
    O << g % 3;
Yandex
Объявления
11.02.2014, 10:54     Поделитесь советом. Как сократить еще 1 символ. =)
Ответ Создать тему
Опции темы

Текущее время: 00:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru