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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2017, 18:45   #1
Коля1337
Новичок
Джуниор
 
Регистрация: 25.06.2017
Сообщений: 1
По умолчанию C/C++ по заданному числу N найдите все целые степени двойки не превосходящие N

ВСЕМ ДОРОУ
крч
есть задача
ПО ЗАДАНОМУ ЧИСЛУ Н НАЙДИТЕ ВСЕ ЦЕЛЫЕ СТЕПЕНИ ДВОЙКИ НЕ ПРЕВОСХОДЯЩИЕ Н
В ФАЙЛЕ ВХОДА ОДНО ЧИСЛО Н
В ФАЙЛЕ ВЫВОДА ВСЕ ЦЕЛЫЕ СТЕПЕНИ ДВОЙКИ В ПОРЯДКЕ ВОЗРАСТАНИЯ
есть код
#include <bits/stdc++.h>
#include <math.h>
using namespace std;

int main()
{
freopen ("input.txt", "r", stdin);
freopen ("output.txt","w", stdout);

int n, y;
cin>>n;
y=1;
do
{
cout<<y<<" ";
y=y*2;

}
while (y<n);


return 0;
}
но решение всего на 70балов из 100
как доделать код? заранее спасибо
Коля1337 вне форума Ответить с цитированием
Старый 26.06.2017, 02:42   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

ссылку на задачу дай.
Возможно, надо писать длинную арифметику. Возможно, достаточно заменить тип на unsigned int. (с отрицательными твоя программа не работает все равно).

Возможно, в задаче сказано что-то типа "не превосходящие n по модулю". (тогда задача вообще сильно усложнится с учетом "в порядке возрастания").

Если n равно нулю - программа вообще ничего выводить не должна. У тебя выведет единицу.

Кто проверял код - машина или человек? - если человек - то 70 из 100 - это слишком роскошно, я бы по рукам надавал еще.

Капсом не пиши, уважай присутствующих. И без вот этих вот опечаток, пожалуйста (дороу, крч и т.п.)

Последний раз редактировалось rrrFer; 26.06.2017 в 02:47.
rrrFer вне форума Ответить с цитированием
Старый 26.06.2017, 06:44   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Зачем тут длинная арифметика, там же всего лишь первый ... в числе найити и ...
p51x на форуме Ответить с цитированием
Старый 26.06.2017, 14:49   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Зачем тут длинная арифметика, там же всего лишь первый ... в числе найити и ...
Потому что для n = 1000 надо будет найти степени двойки вплоть до 2^999. А такое число в unsigned double не влезет.
rrrFer вне форума Ответить с цитированием
Старый 26.06.2017, 15:30   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
Потому что для n = 1000 надо будет найти степени двойки вплоть до 2^999.
Вы не поняли условие задания.
нужно вывести степени числа два, не превосходящие заданного числа.
например, при n=1000 нужно вывести:
1 2 4 8 16 32 64 128 256 512
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.06.2017, 15:58   #6
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы не поняли условие задания.
Согласен. Был не прав.
rrrFer вне форума Ответить с цитированием
Старый 28.06.2017, 03:13   #7
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Код:
   for (unsigned long y=1; y < N; y = y << 1)
       std::cout<<y<<" ";
alexzk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задачи в Паскале! Используя один цикл, вывести все целые степени числа А от 1 до N. Jenee Помощь студентам 4 05.03.2017 04:27
Выведите на экран степени двойки.Си nataqwest Помощь студентам 2 19.12.2014 21:42
Найдите все возможные целые значения длин сторон прямоугольного треугольника в диапазоне от 1 до N (Delphi Fon Помощь студентам 5 25.10.2012 11:50
Найдите все целые решения уравнения vadiprog Помощь студентам 2 20.11.2011 22:40
Как вывести все целые степени числа? riorio07 Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2008 11:47