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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
#1

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

24.01.2013, 20:37. Просмотров 3468. Ответов 32
Метки нет (Все метки)

Составил задачу которая только увеличивает на один ну тое сть выводит: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
Спасибо всем кто поможет!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2013, 20:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 (C++):

Напишите программу, которая выводит все простые числа, которые являются палиндромами - C++
Напишите программу, которая выводит все простые числа, которые являются палиндромами

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

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

Функция, которая для чисел от 0 до n выводит все числа, которые в двоичной записи являются палиндромами - C++
написать функцию, которая для чисел от 0 до n выводит все числа, которые в двоичной записи являются палиндромами. то есть читаются...

Написать программу, которая выводит в консоль все числа, кратные 3 в диапазоне от 0 до 100 - C++
Написать программу, которая выводит в консоль все числа, кратные 3 в диапазоне от 0 до 100. прошу помощи использовать while if...

Написать программу, которая генерирует последовательность из 10 случайных чисел в диапазоне от 1 до 10, выводит эти числа на экран и вычисляет их - C++
Написать программу, которая генерирует последовательность из 10 случайных чисел в диапазоне от 1 до 10, выводит эти числа на экран и...

32
LiveRos
62 / 67 / 1
Регистрация: 05.10.2012
Сообщений: 240
24.01.2013, 23:57 #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
0
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
24.01.2013, 23:59  [ТС] #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.
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,057
25.01.2013, 00:02 #18
Цитата Сообщение от Serezha Посмотреть сообщение
cout <<1<<i<< " ";
Цитата Сообщение от Serezha Посмотреть сообщение
ответ -11 12 14 18
ну все правильно выводит
<<1 то выбрось в cout
он тебе первую единицу и дает

Не по теме:

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

1
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
25.01.2013, 00:16  [ТС] #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, а как сделать, чтоб ты пробел?
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,057
25.01.2013, 00:22 #20
Цитата Сообщение от Serezha Посмотреть сообщение
Вот сделал так, но теперь просто впереди 0, а как сделать, чтоб ты пробел?
Цитата Сообщение от Serezha Посмотреть сообщение
cout <<0<<i<< " ";
сам же 0 и написал напиши пробел(хотя он у тебя после числа выводится)
после числа пробел
C++
1
cout <<i<< " ";
перед числом
C++
1
cout << " "<<i;
1
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
25.01.2013, 00:46  [ТС] #21
Цитата Сообщение от ValeryS Посмотреть сообщение
Код C++
1
cout <<i<< " ";
перед числом
Код C++
1
cout << " "<<i
Блин точно спасибо!!

Добавлено через 5 минут
Полностью провельный код:
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 (i<n)
{
for(int i=1; i<n;i= i<<1)
cout <<" "<<i<< " ";
}
else cout<<"Takix chisel net ";
getch();
return 0;
}
Спасибо всем за принятое участие! А я буду учиться
0
LiveRos
62 / 67 / 1
Регистрация: 05.10.2012
Сообщений: 240
25.01.2013, 00:50 #22
Ну и что это? У меня не работает, результат то какой?
Как работает оператор if (i<n), если только в теле цыкла for узнаем значение переменной і.
0
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
25.01.2013, 00:52  [ТС] #23
Цитата Сообщение от LiveRos Посмотреть сообщение
Код C++
1
2
3
4
cin>>n;
*if (i<n)
*{
*for(int i=1; i<n;i= i<<1)
А это чтоб если ввести число с минусом то выбьет инфу Takix chisel net !!!
0
LiveRos
62 / 67 / 1
Регистрация: 05.10.2012
Сообщений: 240
25.01.2013, 00:55 #24
и я не силен в математике но где тут степень?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7418 / 4533 / 673
Регистрация: 29.11.2010
Сообщений: 12,287
25.01.2013, 01:00 #25
LiveRos, i= i<<1 (i <<= 1 как в моем примере) побитовый сдвиг и осуществляет возведение во 2 степень.
0
LiveRos
62 / 67 / 1
Регистрация: 05.10.2012
Сообщений: 240
25.01.2013, 01:10 #26
Запутался, выкиньте пожалуйста что ввели и результат.
Я переделал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main()
{
 int n,i=1;
 cout<<"Vvedite n"<<'\n';
 cin>>n;
 if (i<n)
    {
    for(; i<n;i= i<<1)
        cout <<" "<<i<< " ";
    }
    else cout<<"Takix chisel net ";
 return 0;
}
Ибо, как я уже описал выше, код Serezha у меня не работает.
Ввожу значение n=56
Программа выдала 1 2 4 8 16 32
0
MrGluck
Модератор
Эксперт CЭксперт С++
7418 / 4533 / 673
Регистрация: 29.11.2010
Сообщений: 12,287
25.01.2013, 01:13 #27
LiveRos, у вас выдало степени двойки. Их надо куда то записать, а потом в цикле, проходя от 1 до n сверять с этими данными, и, если не совпадают, то выводить на экран.
0
Serezha
24 / 20 / 1
Регистрация: 29.11.2012
Сообщений: 431
Записей в блоге: 1
25.01.2013, 01:34  [ТС] #28
Прочтите задание у меня дана задача: Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2. вот она и выводит!!!
0
LiveRos
62 / 67 / 1
Регистрация: 05.10.2012
Сообщений: 240
25.01.2013, 02:09 #29
протупил с заданием
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
 int n,x;
 cout<<"Vvedite x=";
 cin>>x;
 if(x>1)
    {
    for(int i=1;i<=x;i++)
        {
            n=pow(2,i);
            cout<<n<<'\n';
        }
    }
    else cout<<"NO!";
    return 0;
}
Так пойдет? Без побитовых сдвигов.
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,057
25.01.2013, 06:54 #30
Цитата Сообщение от LiveRos Посмотреть сообщение
Без побитовых сдвигов.
Чем это сдвиги то тебе не угодили? пользоваться не умеешь
Цитата Сообщение от LiveRos Посмотреть сообщение
n=pow(2,i);
тему перечитай этот способ уже предложил miriganua
подумай какие есть у него недостатки?
плюс я еще три два со сдвигом, один с домножением

Serezha, принцип "Бритва Оккамы" знаешь?
"Не плодите сущности без необходимости" другими словами проще надо
зачем ты проверяешь какую то i ?? если для проверки отрицательных тебе нужно проверить больше нуля число или
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 n;
cout<<"Vvedite n"<<'\n';
cin>>n;
if (n>0)
 {
  for(int i=1; i<=n;i= i<<1)
  cout <<" "<<i<< " ";
 }
else 
 cout<<"Takix chisel net ";
getch();
return 0;
}
Добавлено через 27 минут
LiveRos,
у тебя кстати алгоритмическая ошибка

Цитата Сообщение от LiveRos Посмотреть сообщение
for(int i=1;i<=x;i++)
* * * * {
* * * * * * n=pow(2,i);
* * * * * * cout<<n<<'\n';
* * * * }
если введешь 9 то напечатает 2 4 8 16 32 64 128 256 512
вместо
2 4 8
0
25.01.2013, 06:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2013, 06:54
Привет! Вот еще темы с ответами:

Нужно написать программу которая выводит все простые числа с четным суммой цифр в диапазоне от K до N - C++
Напишите программу, которая выводит все простые числа с четной суммой цифр в диапазоне от K до N (2 ≤K ≤N ≤100000). Входные данные: ...

Написать программу,которая генерирует последовательность из 10 случайных чисел в диапазоне от 1 до 10, выводит эти числа на экран и вычисляет их средн - C++
Написать программу,которая генерирует последовательность из 10 случайных чисел в диапазоне от 1 до 10, выводит эти числа на экран и...

составить программу, которая выводит на экран в строку числа от 1 до 10 и подсчитывает их сумму? - C++
Народ отзовитесь кто может помочь!А то экзамен через 7 дней! :) Заранее благодарю!!!

Даны натуральные числа N, K, L (K<L). Вывести на экран все делители числа N, которые меньше K или больше L - C++
Даны натуральные числа N, K, L (K&lt;L). Вывести на экран все делители числа N, которые меньше K или больше L.


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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