Házi feladat
Alapfejezet - Hatványozódjunk...
Házi feladat - Írjunk programot, ami bekér egy egész számot és kiírja az első annyi darab négyzetszámot!
A probléma megértése már fél siker. Nekem 1. körben nem sikerült, mert simán hatványozást implementáltam. Ezen kódokat összehasonlítás végett alább tanulmányozhatjuk, a helyes értelmezést pedig most Polonszki-Pálinkó Tímea mutatja meg. Ebben a vonatkozásban a növekvő számsor négyzetszámai vannak kilistázva, még pedig bekért szám mértékéig, például:
5
0
1
4
9
16
...mert:
0 * 0 = 0
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
A négyzetszámok kilistázását nekünk Tímea többféle iteráló módszerrel is megmutatja.
Egyúttal megjegyzem, ha jól tudom, a hatványozó megoldás végül el lett fogadva, úgyhogy szerintem a tanár sem volt tisztában a kérdés bonyolult jellegével.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Kérek egy egész számot!");
Scanner sc = new Scanner(System.in);
int db = sc.nextInt();
int kitevo = 2;
double eredmeny = 1;
for(int alap = 0; alap < db; alap++){
eredmeny = Math.pow(alap, kitevo);
System.out.println((int)eredmeny);
}
System.out.println("Kérek egy másik számot!");
db = sc.nextInt();
for(int alap = 0; alap < db; alap++){
System.out.println(alap * alap);
}
System.out.println("Kérek egy harmadik számot!");
db = sc.nextInt();
int alap = 0;
do{
int negyzetszam = alap * alap;
System.out.println(negyzetszam);
alap++;
}while(alap < db);
}
}
Végeredmény:
Kérek egy egész számot!
5
0
1
4
9
16
Kérek egy másik számot!
10
0
1
4
9
16
25
36
49
64
81
Kérek egy harmadik számot!
3
0
1
4
Az eredeti, hatványozó kódok
Ha például 5 hatványait szeretnénk megtudni, akkor csak az első 5 db hatványra vagyunk kíváncsiak. Mivel azonban minden szám 0. hatványa mindig 1 (tehát x0 = 1), ezért 1 + 5 hatványt kell kilistáznunk. Mindezt könnyű beállítanunk az int kitevo = alap értékadással és további, pontos deklarálásokkal. A konkrét hatványozásról a beépített Math.pow(alap, i) függvény gondoskodik:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Kérem adja meg az alapot!");
int alap = scanner.nextInt();
int kitevo = alap;
double eredmeny = 1;
for(int i = 0; i <= kitevo; i++){
eredmeny = Math.pow(alap, i);
System.out.println(i + ". hatvány: "
+ eredmeny);
}
}
}
Végeredmény:
Kérem adja meg az alapot!
5
0. hatvány: 1.0
1. hatvány: 5.0
2. hatvány: 25.0
3. hatvány: 125.0
4. hatvány: 625.0
5. hatvány: 3125.0
Nézzük meg elöltesztelő ciklussal is (részben tanulói megoldás):
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 0;
double eredmeny = 0;
System.out.println("Az első hány hatványt írjam ki?");
int alap = sc.nextInt();
while (i <= alap) {
eredmeny = Math.pow(alap, i);
System.out.println(eredmeny);
i++;
}
}
}
Végeredmény:
Az első hány hatványt írjam ki?
5
1.0
5.0
25.0
125.0
625.0
3125.0