Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Pętla for
09-03-2014, 05:52 PM
Post: #1
Pętla for
Witam, mam taki kod:
Kod:
import java.util.*;
import static java.lang.Math.*;
public class Potegi {

    public static void main(String[] args) {
    
    Scanner in = new Scanner(System.in);
    System.out.print("Podaj liczbe calkowita, dodatnia: ");
        int a = in.nextInt();
    double p=0;
    
    
        
  
    for(int i=1;a>p;i++){
    
    p = Math.pow(2, i);
    int px = (int) p;
    System.out.println(px);
    }

    }
    
    
}

A to zadanie:
Cytat:Napisac program, który wczytuje od uzytkownika liczbe całkowita dodatnia n, a
nastepnie wyswietla na ekranie wszystkie potegi liczby 2 nie wieksze, niz podana
liczba. Przykładowo, dla liczby 71 program powinien wyswietlic:
Niestety pokazuje mi o jedną potęgę, za dużo, wiem, że błąd może się wydawać banalny ale ja za nic nie mogę dojść jak to zmienić, żeby dobrze się wyświetlało. Proszę o szybką pomocSmile
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
09-03-2014, 06:13 PM
Post: #2
RE: Pętla for
Pokazuje Ci o jedną potęgę więcej ponieważ w momencie gdy sprawdzasz warunek w for'ze to liczba znajdująca się w zmiennej p jest mniejsza od wczytanej liczby. Ja bym proponował zastosować np. pętlę do-while lub poprawić ten warunek w tym for'ze

GG: 2802571
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
09-03-2014, 06:39 PM
Post: #3
RE: Pętla for
Dalej nie wiem, jak to zrobićSad
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
09-03-2014, 07:31 PM
Post: #4
RE: Pętla for
Spróbuj:
p = 1
int i=1;
do{    
  
    int px = (int) p;
    System.out.println(px);
  p = Math.pow(2, ++i);
    }while(p<a)

GG: 2802571
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości