Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++] kolejne potęgi dwójki mniejsze od n

Ostatnio zmodyfikowano 2016-01-09 20:35
Autor Wiadomość
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.
P-143004
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.
P-143007
Eryk17
Temat założony przez niniejszego użytkownika
» 2016-01-06 18:49:11
C/C++
#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?
P-143008
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.
P-143010
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?
P-143013
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, cmath
Szukaj pod potęgowanie liczb.
P-143016
mateczek
» 2016-01-06 21:49:30
Dla przykładu tak :

C/C++
#include <iostream>
using namespace std;
int main()
{
    int liczba = 1; //ustawiasz pierwszy bit
    while( 1 ) {
        cout << liczba << endl;
        liczba = liczba << 1; // a potem w pętli go przesuwasz o jeden z każdym obiegiem
        if( liczba >= 512 ) break;
       
    }
}

a tak naprawdę to nie wiem dlaczego się bujasz :) z tym programem !!! skoro wystarczy tak :P

C/C++
#include <iostream>
using namespace std;

int main() {
    int a;
    cin >> a;
    int liczba = 1;
    while( liczba < a )
    {
        cout << liczba << endl;
        liczba = liczba * 2;
    }
};
P-143031
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() .
P-143033
« 1 » 2 3
  Strona 1 z 3 Następna strona