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

Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 20:37     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #1
Составил задачу которая только увеличивает на один ну тое сть выводит:1,2,3,4,...n
Пытаюсь изменить чтоб выводило квадрат и тут ......................почему не получается,я так понял вводится число n и оно должно умножиться на себя или нет???

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio>
 
int main()
{
int m,n;
cout<<"Vvedite m"<<'\n';
cin>>m;
cout<<"Vvedite n"<<'\n';
cin>>n;
if (m<n)
{
for (int i=m; i<=n;i++)    /* по идее в цикле нужно изменять но ничего не получается*/
cout<<i<<" ";
}
else cout<<"takinetx chisel ";
    getch();
    return 0;
}
ответ должен быть по идее n=13
1.2.4.8.
n=-56
takinetx chisel
Спасибо всем кто поможет!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2013, 20:37     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2
Посмотрите здесь:

C++ Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000
C++ Написать программу,которая генерирует последовательность из 10 случайных чисел в диапазоне от 1 до 10, выводит эти числа на экран и вычисляет их средн
C++ Написать программу, которая генерирует последовательность из 10 случайных чисел в диапазоне от 1 до 10, выводит эти числа на экран и вычисляет их
C++ Даны натуральные числа N, K, L (K<L). Вывести на экран все делители числа N, которые меньше K или больше L
C++ Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
24.01.2013, 21:27     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #2
Возводи 2 последовательно в степени 0, 1, 2, 3, 4 ... в цикле, а условием прекращения цкла буде, когда 2 в какой-то степени больше n

Добавлено через 2 минуты
Вот так:
C++
1
2
3
4
for (int i = 0; pow(2.0, i) <= n; i++)
{
     cout <<  pow(2.0, i) << "  ";
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,402
24.01.2013, 21:33     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <set>
 
int main()
{
    int n;
    std::set<int> s;
    std::cin >> n;
    for (int i=1; i <= n; i <<= 1)
        s.insert(i);
    for (int i=1; i <= n; i++)
        if (s.find(i) == s.end())
            std::cout << i << " ";
}
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 23:17  [ТС]     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #4
Цитата Сообщение от miriganua Посмотреть сообщение
C++
1
2
3
4
for (int i = 0; pow(2.0, i) <= n; i++)
{
     cout << *pow(2.0, i) << " *";
}
- к сожалению не работает в данном случае!

Добавлено через 4 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <set>
int main()
{
    int n;
    std::set<int> s;
    std::cin >> n;
    for (int i=1; i <= n; i <<= 1)
        s.insert(i);
    for (int i=1; i <= n; i++)
        if (s.find(i) == s.end())
            std::cout << i << " ";
}
-выбивает ошибку! Может я что то не так делаю??
Запускаю через borlan c++
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
24.01.2013, 23:26     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #5
А почему не работает, неправильный ответ?
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
24.01.2013, 23:27     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #6
Цитата Сообщение от Serezha Посмотреть сообщение
к сожалению не работает в данном случае!
для pow надо math.h подключать
но все можно сделать проще
каждый раз возводим в степень
C++
1
2
for(int i=0; (1<<i)<n;i++)
   cout <<(1<<i)<< "  ";
домножаем число на 2
C++
1
2
for(i=1; i<n;i*=2)
     cout <<i<< "  ";
то же но со сдвигом
C++
1
2
for(i=1; i<n;i= i<<1)
     cout <<i<< "  ";
сдвиг влево << на одну позицию это умножение на 2
(1<<i) а это выдаст i степень двойки
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
24.01.2013, 23:28     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #7
Точно, можно без функции)))
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 23:30  [ТС]     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #8
Цитата Сообщение от miriganua Посмотреть сообщение
А почему не работает, неправильный ответ?
-нет вообще не запускается!
Выбивает ошибку в синтаксисе!
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
24.01.2013, 23:32     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #9
Цитата Сообщение от Serezha Посмотреть сообщение
Выбивает ошибку в синтаксисе!
Цитата Сообщение от ValeryS Посмотреть сообщение
для pow надо math.h подключать
в начале программы
C++
1
#include <math.h>
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 23:35  [ТС]     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #10
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
2
for(i=1; i<n;i= i<<1)
     cout <<i<< " *";
выбивает-Undefined symbol 'i'-из-за чего???

Добавлено через 46 секунд
Вот так сделал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio>
 
int main()
{
int m,n;
cout<<"Vvedite m"<<'\n';
cin>>m;
cout<<"Vvedite n"<<'\n';
cin>>n;
if (m<n)
{
for(i=1; i<n;i= i<<1)
     cout <<1<<i<< "  ";
}
else cout<<"Nepravilno zadani m i n ";
    getch();
    return 0;
}
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
24.01.2013, 23:38     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #11
Цитата Сообщение от Serezha Посмотреть сообщение
выбивает-Undefined symbol 'i'-из-за чего???
из за того что 'i' необъявлен (мой косяк)
или так
C++
1
for(int i=1; i<n;i= i<<1)
или так
C++
1
2
int i;
for(i=1; i<n;i= i<<1)
Добавлено через 1 минуту
Цитата Сообщение от Serezha Посмотреть сообщение
else cout<<"Nepravilno zadani m i n ";
а m тебе зачем ?? все равно не используешь
LiveRos
62 / 67 / 1
Регистрация: 05.10.2012
Сообщений: 240
24.01.2013, 23:42     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #12
Я что-то не понял задания, этого Вы хотите добиться?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
    double i;
    double n=2;
      for(i=1;i<10;i++)
    {
        cout<< pow(i,n);
        cout<<"\n";
    }
}
Добавлено через 2 минуты
Цитата Сообщение от Serezha Посмотреть сообщение
я так понял вводится число n и оно должно умножиться на себя или нет???
Вы и сами не поняли чего хотите, если квадрат "самого себя" то переменную n в цыкле сменить на і. Тобишь
C++
1
cout<< pow(i,і);
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 23:45  [ТС]     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #13
Цитата Сообщение от ValeryS Посмотреть сообщение
а m тебе зачем ?? все равно не используешь
-я уже все стал оставлять вдруг что не так!!!

Добавлено через 2 минуты
Цитата Сообщение от LiveRos Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    double i;
    double n=2;
      for(i=1;i<10;i++)
    {
        cout<< pow(i,n);
        cout<<"\n";
    }
}
Я хочу добиться
чтоб ответ был таким:
ответ должен быть по идее n=13
1.2.4.8.
n=-56
takinetx chisel
Спасибо всем кто поможет!!
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
24.01.2013, 23:49     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #14
Цитата Сообщение от LiveRos Посмотреть сообщение
ы и сами не поняли чего хотите, если квадрат "самого себя" то переменную n в цыкле сменить на і. Тобишь
это точно квадраты самого себя?
Цитата Сообщение от LiveRos Посмотреть сообщение
cout<< pow(i,і);
1^1
2^2
3^3
4^4

с i*і не попутал ? или pow(i,2)

Добавлено через 2 минуты
Цитата Сообщение от Serezha Посмотреть сообщение
Я хочу добиться
чтоб ответ был таким:
ответ должен быть по идее n=13
Я тебе ТРИ варианта кинул плюс miriganua, еще один
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 23:56  [ТС]     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio>
 
int main()
{
int m,n;
cout<<"Vvedite m"<<'\n';
cin>>m;
cout<<"Vvedite n"<<'\n';
cin>>n;
if (m<n)
{
for(int i=1; i<n;i= i<<1)
cout <<1<<i<< " ";
}
else cout<<"Nepravilno zadani m i n ";
getch();
return 0;
}
Вот мой код,как только избавляюсь от m все не работает,а с m работает но
vvedeno m 1
vvedeno n 13
ответ -11 12 14 18
LiveRos
62 / 67 / 1
Регистрация: 05.10.2012
Сообщений: 240
24.01.2013, 23:57     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #16
Лично я вообще не понял чего хочет ТС. "По идее", "наверное","вроде бы".
если pow(i,n) - получаем числа в степени 2, переменная n - обьявлена как 2.
1^2=1
2^2=4
3^2=9
4^2=16
если pow(i,i) - получаем числа в степени самого себя.
1^1=1
2^2=4
3^3=27
4^4=256
5^5=3125
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 23:59  [ТС]     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #17
Что делать вообще не понимаю я полностью запутался!!

Добавлено через 1 минуту
Задача такая: Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2.

Добавлено через 34 секунды
Цитата Сообщение от LiveRos Посмотреть сообщение
Лично я вообще не понял чего хочет ТС. "По идее", "наверное","вроде бы".
если pow(i,n) - получаем числа в степени 2, переменная n - обьявлена как 2.
1^2=1
2^2=4
3^2=9
4^2=16
если pow(i,i) - получаем числа в степени самого себя.
1^1=1
2^2=4
3^3=27
4^4=256
5^5=3125
Я хочу добиться такую задачу: Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
25.01.2013, 00:02     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #18
Цитата Сообщение от Serezha Посмотреть сообщение
cout <<1<<i<< " ";
Цитата Сообщение от Serezha Посмотреть сообщение
ответ -11 12 14 18
ну все правильно выводит
<<1 то выбрось в cout
он тебе первую единицу и дает

Не по теме:

я же свой пост поправил, опечатка была

Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
25.01.2013, 00:16  [ТС]     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #19
Цитата Сообщение от ValeryS Посмотреть сообщение
ну все правильно выводит
<<1 то выбрось в cout
он тебе первую единицу и дает
А как сделать чтоб не давал,когда удаляю вообще не работает!!

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio>
 
int main()
{
int n,i;
cout<<"Vvedite n"<<'\n';
cin>>n;
if (n)
{
for(int i=1; i<n;i= i<<1)
cout <<0<<i<< " ";
}
else cout<<"Nepravilno zadani m i n ";
getch();
return 0;
}
-Вот сделал так, но теперь просто впереди 0, а как сделать, чтоб ты пробел?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2013, 00:22     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2
Еще ссылки по теме:

C++ Написать программу, которая выводит в консоль все числа, кратные 3 в диапазоне от 0 до 100
Написать программу, которая выводит квадрат, введенного с клавиатуры, числа в диапазоне от 0 до 10 включительно. При введении отрицательного числа осу C++
C++ Функция, которая для чисел от 0 до n выводит все числа, которые в двоичной записи являются палиндромами

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
25.01.2013, 00:22     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 #20
Цитата Сообщение от Serezha Посмотреть сообщение
Вот сделал так, но теперь просто впереди 0, а как сделать, чтоб ты пробел?
Цитата Сообщение от Serezha Посмотреть сообщение
cout <<0<<i<< " ";
сам же 0 и написал напиши пробел(хотя он у тебя после числа выводится)
после числа пробел
C++
1
cout <<i<< " ";
перед числом
C++
1
cout << " "<<i;
Yandex
Объявления
25.01.2013, 00:22     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2
Ответ Создать тему
Опции темы

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