[c++] kolejne potęgi dwójki mniejsze od n
Ostatnio zmodyfikowano 2016-01-09 20:35
Eryk17 Temat założony przez niniejszego użytkownika |
[c++] kolejne potęgi dwójki mniejsze od n » 2016-01-06 18:33:18 hej. mam zadanie w którym podaje n i program ma mi wypisać kolejne potęgi liczby dwa zaczynając od potęgi zerowej. Potęga liczby dwa nie może przekraczać n. Szukałem na internecie jakichś wskazówek ale nic nie znalazłem co by mi mogło pomóc.
|
|
carlosmay |
» 2016-01-06 18:43:18 Użyj instrukcji warunkowej, która sprawdzi czy wynik kolejnych potęg nie jest już większy od 'n'. Całość w pętlę, gdzie licznik będzie wykładnikiem potęgi. |
|
Eryk17 Temat założony przez niniejszego użytkownika |
» 2016-01-06 18:49:11 #include <iostream> #include <cstdio> #include <math.h>
using namespace std;
int main() { int a; cin >> a; int liczba = 2; int i = 0; while( liczba < a ) { liczba = liczba * i; i++; cout << liczba << endl; } };
zrobiłem coś takiego ale pętla się nie kończy i wyskakują mi same zera. co robię źle? |
|
carlosmay |
» 2016-01-06 19:12:46 liczba = liczba * i; Po pierwsze nie ma w tym kodzie potęgowania. Po drugie to wyrażenie jest błędne. Mnożenie przez zero to zero. |
|
Eryk17 Temat założony przez niniejszego użytkownika |
» 2016-01-06 19:32:45 w takim razie jak mogę napisać taki program który będzie potęgował dwójkę dopóki wynik nie przekroczy n? |
|
carlosmay |
» 2016-01-06 20:23:46 w takim razie jak mogę napisać taki program który będzie potęgował dwójkę |
Jeśli dodajesz do programu bibliotekę <cmath> to z niej skorzystaj. Biblioteka math.h, cmathSzukaj pod potęgowanie liczb. |
|
mateczek |
» 2016-01-06 21:49:30 Dla przykładu tak : #include <iostream> using namespace std; int main() { int liczba = 1; while( 1 ) { cout << liczba << endl; liczba = liczba << 1; if( liczba >= 512 ) break; } }
a tak naprawdę to nie wiem dlaczego się bujasz :) z tym programem !!! skoro wystarczy tak :P #include <iostream> using namespace std;
int main() { int a; cin >> a; int liczba = 1; while( liczba < a ) { cout << liczba << endl; liczba = liczba * 2; } }; |
|
carlosmay |
» 2016-01-06 22:00:12 liczba = liczba << 1; przesunięcie bitowe. Działa jak potęga dwójki (czyli każde przesunięcie to mnożenie przez 2) i jest szybsze od std::pow() . |
|
« 1 » 2 3 |