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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2011, 16:12   #1
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию Число в степени 0

Есть задача, вывести степень двойки N-раз (N задается пользователем) начиная с нулевой степени. Моя программа выводит числа начиная со степени 1, а как сделать чтобы и нулевая выводилась?
Код:
# include <iostream>
# include <conio.h>

using std:: cin;
using std:: cout;

int main ()
{
 int n = 0, power = 1, count = 0;

 cout << "Enter N: ";
 cin >> n;
 
 while (count <= n)
 {
	power = power * 2;
	cout << power << "\n";
	count++;
 }
 getch ();
}
Заранее спасибо!!!
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 10.11.2011, 16:30   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
# include <iostream>
# include <conio.h>

using std:: cin;
using std:: cout;

int main ()
{
 int n = 0, power = 1, count = 0;

 cout << "Enter N: ";
 cin >> n;
 
 while (count <= n)
 {
	cout << power << "\n";
	power *= 2;
	count++;
 }
 getch ();
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 10.11.2011, 16:31   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Код:
 while (count <= n+1)
 {
	cout << power << "\n";
	power = power * 2;
	count++;
 }
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 10.11.2011, 16:55   #4
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Mandrivnyk Посмотреть сообщение
Код:
 while (count <= n)
 {
	cout << power << "\n";
	power *= 2;
	count++;
 }
 getch ();
}
ааа, теперь поняла, т.е. сначала выводим единичку, а потом уже считаем что нам надо

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
 while (count <= n+1)
 {
	cout << power << "\n";
	power = power * 2;
	count++;
 }
Не совсем поняла, зачем увеличивать N на 1? Если пользователь ввел N = 5, то рез-т должен быть:
1
2
4
8
16
32
А если увеличить n на 1, то рез-т выведет еще и 64. Объясните пожалуйста этот моментик?
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 10.11.2011, 19:06   #5
Camaro Chevelle
Форумчанин
 
Регистрация: 05.11.2011
Сообщений: 102
По умолчанию

а побитовые сдвиги влево не проще юзать? сначала в переменную запишем 1 а потом сдвигаем N раз, выводя промежуточные результаты
Camaro Chevelle вне форума Ответить с цитированием
Старый 11.11.2011, 11:52   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
А если увеличить n на 1, то рез-т выведет еще и 64. Объясните пожалуйста этот моментик?
Посчитает но не выведет.
Цитата:
т.е. сначала выводим единичку, а потом уже считаем что нам надо
сначала выводим старый результат потом считаем НО не выводим
1 1*2 =2
2 2*2 =4
4 4*2 =8
...
можно не прибавлять, тогда ПОСЛЕ цикла надо будет сделать ЕЩЕ один вывод для последнего результата, т. к. расчет идет после вывода.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 11.11.2011 в 11:59.
evg_m вне форума Ответить с цитированием
Старый 11.11.2011, 19:14   #7
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Посчитает но не выведет.

сначала выводим старый результат потом считаем НО не выводим
1 1*2 =2
2 2*2 =4
4 4*2 =8
...
можно не прибавлять, тогда ПОСЛЕ цикла надо будет сделать ЕЩЕ один вывод для последнего результата, т. к. расчет идет после вывода.
Посчитает и выведет, если n = 5, то рез-т выводится от 1...32, если n+1, рез-т будет 1...64, т.е. выводится лишний результат

А чтобы результат выводился так, как Вы объясняете надо изменить условие while
Код:
 while (count < n+1)
 {
	cout << power << "\n";
	power = power * 2;
	count++;
 }
Pingvinenok_Lolo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Число с индексом или в степени Саня_ Общие вопросы Delphi 1 06.03.2011 01:25
Как в Label записать число в степени? XilDen Общие вопросы Delphi 7 03.07.2009 21:03
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43
Число в степени vItal87ka Паскаль, Turbo Pascal, PascalABC.NET 12 12.01.2008 08:21
Число N, заменить одну из его цифр, чтобы получилось число, max близкое к некоторой степени двойки urgu_st Помощь студентам 13 23.10.2007 09:14