Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/50: Рейтинг темы: голосов - 50, средняя оценка - 4.80
24 / 20 / 3
Регистрация: 29.11.2012
Сообщений: 454
Записей в блоге: 1
1

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

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

Author24 — интернет-сервис помощи студентам
Составил задачу которая только увеличивает на один ну тое сть выводит: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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2013, 20:37
Ответы с готовыми решениями:

Напишите программу, которая вводит натуральные числа a и b и выводит все простые числа в диапазоне от a до b
Напишите программу, которая вводит натуральные числа a и b и выводит все простые числа в диапазоне...

Составить программу, которая находит с выводит на экран все простые числа в диапазоне [3; n]
Дано натуральное число n &gt; 3. Составить программу, которая находит с выводит на экран все простые...

Составить программу, которая находит и выводит на экран все двузначные натуральные числа, равные утроенному произведению
Помогите,пожалуйста, написать программу Реализовать алгоритм на С#, используя цикл с заданным...

Составить программу, которая выводит все простые натуральные числа.
Составить программу, которая выводит все простые натуральные числа из заданного интервала ....

32
24 / 20 / 3
Регистрация: 29.11.2012
Сообщений: 454
Записей в блоге: 1
25.01.2013, 00:46  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от 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
62 / 67 / 2
Регистрация: 05.10.2012
Сообщений: 240
25.01.2013, 00:50 22
Ну и что это? У меня не работает, результат то какой?
Как работает оператор if (i<n), если только в теле цыкла for узнаем значение переменной і.
0
24 / 20 / 3
Регистрация: 29.11.2012
Сообщений: 454
Записей в блоге: 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
62 / 67 / 2
Регистрация: 05.10.2012
Сообщений: 240
25.01.2013, 00:55 24
и я не силен в математике но где тут степень?
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.01.2013, 01:00 25
LiveRos, i= i<<1 (i <<= 1 как в моем примере) побитовый сдвиг и осуществляет возведение во 2 степень.
0
62 / 67 / 2
Регистрация: 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
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.01.2013, 01:13 27
LiveRos, у вас выдало степени двойки. Их надо куда то записать, а потом в цикле, проходя от 1 до n сверять с этими данными, и, если не совпадают, то выводить на экран.
0
24 / 20 / 3
Регистрация: 29.11.2012
Сообщений: 454
Записей в блоге: 1
25.01.2013, 01:34  [ТС] 28
Прочтите задание у меня дана задача: Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2. вот она и выводит!!!
0
62 / 67 / 2
Регистрация: 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
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
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
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
25.01.2013, 08:55 31
можно написать так:
C++
1
for( int x = 1; x <= n; x*=2 ) cout<<x<<" ";
или так:
C++
1
for( int x = 1; x <= n; x = x<<1 ) cout<<x<<" ";
нормальный компилятор умножение на константу - степень двойки выполнит с помощью shl т.е. в обоих случаях мы получим что-то вроде:
Код
mov eax,dword ptr [x]
shl eax,1
поэтому пишите как вам понятнее x = x * 2, x *= 2, x = x << 1, x <<= 1 нормальный компилятор сгенерирует одинаковый код
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.01.2013, 09:14 32
Цитата Сообщение от ValeryS Посмотреть сообщение
если введешь 9 то напечатает 2 4 8 16 32 64 128 256 512
вместо
2 4 8
точнее вместо 1 2 4 8.
Пропускается 0 степень.
0
LiveRos
25.01.2013, 11:50     Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2
  #33

Не по теме:

ValeryS? не грузитесь, я не читал варианты решения задачи описанные выше, так как сам только изучаю плюсы решил выбрать какую-нибудь задачу из форума, дабы не плодить темы типа "Дайте задания чайнику".
Как новичок я ничего не знаю о "побитовых сдвигах", видимо не дочитал еще до этого раздела, либо там его вообще нет.
Насчет того что в моем решении пропускается 0-я степень - этого я не учел, а с отрицательными числами мой компиль вообще не хочет работать.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2013, 11:50

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

Даны натуральные числа K и N. Составить программу формирования массива А, элементами которого являются числа, сумма цифр которых равна К и которые не
Практика ОАиП

Даны натуральные числа К и N. Составить программу формирования массива A, элементами которого являются числа, сумма цифр которых равна K и которые не
вот собственно задача: Даны натуральные числа К и N. Составить программу формирования массива A,...

Составить программу которая выводит все числа в интервале от 1 до 50 которые делятся на 3. Перевод с С++
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() {...

Составить программу, которая выводит на экран все трёхзначные числа Цукермана
Число Цукермана - натуральное число, которое делится на произведение своих цифр, например: 175...

Программа, вводящая натуральные числа а и б и выводит все нат.числа, квадраты кот. в диапазоне
Вводится два числа а и б, надо вывести все натуральные числа, квадраты которых находятся в...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru