Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: Potenssit

JRokka [17.02.2020 20:57:22]

#

import java.util.*;
public class Program
{
    public static void main(String[] args) {
        HashMap<Integer,String> tulokset = new HashMap<Integer,String>();
        int indeksi = 0;
        int maara = 0;
        int luku = 0;
        int luvut[] = {16,4096,32768,18,64};
       //Käydään luvut läpi.
        for (int x = 0; x < luvut.length; x++){
            luku = luvut[x];
            maara = 0;
            //Katsotaan, onko luku kahden potenssi.
            while (luku % 2 == 0){
                luku /= 2.0;
                if (luku >= 1.0){
                    maara++;
                }
            }
            //Katsotaan, onko luku 2,4,8,16:n potenssi.
            if (luku == 1.0){
               tulokset.put(indeksi,"");
               for (int y = 1; y <= maara; y++){
                   if (maara % y == 0){
                       tulokset.put(indeksi,tulokset.get(indeksi) + Math.pow(2,y) + " ");
                   }
               }
            }
            else {
                tulokset.put(indeksi,"Ei kahden potenssi.");
            }
            indeksi++;
        }
        //Näytetään luvut.
        for (Map.Entry<Integer,String> m : tulokset.entrySet()){
            System.out.println(m.getValue());
        }
    }
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta