I dette afsnit vil vi skrive Java-programmer for at bestemme styrken af et tal. For at få magten af et tal skal du gange tallet med dets eksponent.
Eksempel:
Antag, at grundtallet er 5, og eksponenten er 4. For at få potensen af et tal skal du gange det med sig selv fire gange, dvs. (5 * 5 * 5 * 5 = 625).
Hvordan bestemmer man styrken af et tal?
- Base og eksponent skal læses eller initialiseres.
- Tag en anden variabel effekt og indstil den til 1 for at gemme resultatet.
- Multiplicer basen med power og gem resultatet i power ved at bruge for eller while-løkken.
- Gentag trin 3, indtil eksponenten er lig nul.
- Udskriv output.
Metoder til at finde styrken af et tal
Der er flere metoder til at bestemme et tals magt:
uri vs url
- Brug af Java til Loop
- Brug af Java under Loop
- Brug af rekursion
- Brug af Math.pow()-metoden
- Brug af bitmanipulation
1. Brug af Java til Loop
En for-løkke kan bruges til at beregne styrken af et tal ved at gange grundtallet med sig selv gentagne gange.
PowerOfNumber1.java
binært træ vs binært søgetræ
public class PowerOfNumber1 { public static void main(String[] args) { int base = 2; int exponent = 3; int result = 1; for (int i = 0; i <exponent; i++) { result *="base;" } system.out.println(base + ' raised to the power of exponent is result); < pre> <p> <strong>Output:</strong> </p> <pre> 2 raised to the power of 3 is 8 </pre> <h3>2. Using Java while Loop</h3> <p>A while loop may similarly be used to achieve the same result by multiplying the base many times.</p> <p> <strong>PowerOfNumber2.java</strong> </p> <pre> public class PowerOfNumber2 { public static void main(String[] args) { int base = 2; int exponent = 3; int result = 1; int power=3; while (exponent > 0) { result *= base; exponent--; } System.out.println(base + ' raised to the power of ' + power + ' is ' + result); } } </pre> <p> <strong>Output:</strong> </p> <pre> 2 raised to the power of 3 is 8 </pre> <h3>3. Using Recursion:</h3> <p>Recursion is the process of breaking down an issue into smaller sub-problems. Here's an example of how recursion may be used to compute a number's power.</p> <p> <strong>PowerOfNumber3.java</strong> </p> <pre> public class PowerOfNumber3 { public static void main(String[] args) { int base = 2; int exponent = 3; int result = power(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is ' + result); } public static int power(int base, int exponent) { if (exponent == 0) { return 1; } else { return base * power(base, exponent - 1); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 2 raised to the power of 3 is 8 </pre> <h3>4. Using Math.pow() Method</h3> <p>The java.lang package's Math.pow() function computes the power of an integer directly.</p> <p> <strong>PowerOfNumber4.java</strong> </p> <pre> public class PowerOfNumber4 { public static void main(String[] args) { double base = 2.0; double exponent = 3.0; double result = Math.pow(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is ' + result); } } </pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of 3.0 is 8.0 </pre> <h3>Handling Negative Exponents:</h3> <p>When dealing with negative exponents, the idea of reciprocal powers might be useful. For instance, x^(-n) equals 1/x^n. Here's an example of dealing with negative exponents.</p> <p> <strong>PowerOfNumber5.java</strong> </p> <pre> public class PowerOfNumber5 { public static void main(String[] args) { double base = 2.0; int exponent = -3; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { if (exponent >= 0) { return calculatePositivePower(base, exponent); } else { return 1.0 / calculatePositivePower(base, -exponent); } } static double calculatePositivePower(double base, int exponent) { double result = 1.0; for (int i = 0; i <exponent; i++) { result *="base;" } return result; < pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of -3 is: 0.125 </pre> <h3>Optimizing for Integer Exponents:</h3> <p>When dealing with integer exponents, you may optimize the calculation by iterating only as many times as the exponent value. It decreases the number of unneeded multiplications.</p> <p> <strong>PowerOfNumber6.java</strong> </p> <pre> public class PowerOfNumber6 { public static void main(String[] args) { double base = 2.0; int exponent = 4; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { double result = 1.0; for (int i = 0; i <exponent; i++) { result *="base;" } return result; < pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of 4 is: 16.0 </pre> <h3>5. Using Bit Manipulation to Calculate Binary Exponents:</h3> <p>Bit manipulation can be used to better improve integer exponents. To do fewer multiplications, an exponent's binary representation might be used.</p> <p> <strong>PowerOfNumber7.java</strong> </p> <pre> public class PowerOfNumber7 { public static void main(String[] args) { double base = 2.0; int exponent = 5; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent > 0) { if ((exponent & 1) == 1) { result *= base; } base *= base; exponent >>= 1; } return result; } } </pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of 5 is: 32.0 </pre> <hr></exponent;></pre></exponent;></pre></exponent;>
2. Brug af Java mens Loop
En while-løkke kan på samme måde bruges til at opnå det samme resultat ved at gange basen mange gange.
PowerOfNumber2.java
public class PowerOfNumber2 { public static void main(String[] args) { int base = 2; int exponent = 3; int result = 1; int power=3; while (exponent > 0) { result *= base; exponent--; } System.out.println(base + ' raised to the power of ' + power + ' is ' + result); } }
Produktion:
2 raised to the power of 3 is 8
3. Brug af rekursion:
Rekursion er processen med at opdele et problem i mindre underproblemer. Her er et eksempel på, hvordan rekursion kan bruges til at beregne et tals styrke.
PowerOfNumber3.java
det smukkeste smil i verden
public class PowerOfNumber3 { public static void main(String[] args) { int base = 2; int exponent = 3; int result = power(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is ' + result); } public static int power(int base, int exponent) { if (exponent == 0) { return 1; } else { return base * power(base, exponent - 1); } } }
Produktion:
2 raised to the power of 3 is 8
4. Brug af Math.pow()-metoden
Java.lang-pakkens Math.pow()-funktion beregner styrken af et heltal direkte.
PowerOfNumber4.java
public class PowerOfNumber4 { public static void main(String[] args) { double base = 2.0; double exponent = 3.0; double result = Math.pow(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is ' + result); } }
Produktion:
2.0 raised to the power of 3.0 is 8.0
Håndtering af negative eksponenter:
Når man beskæftiger sig med negative eksponenter, kan ideen om gensidige beføjelser være nyttig. For eksempel er x^(-n) lig med 1/x^n. Her er et eksempel på håndtering af negative eksponenter.
PowerOfNumber5.java
konverter streng til enum
public class PowerOfNumber5 { public static void main(String[] args) { double base = 2.0; int exponent = -3; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { if (exponent >= 0) { return calculatePositivePower(base, exponent); } else { return 1.0 / calculatePositivePower(base, -exponent); } } static double calculatePositivePower(double base, int exponent) { double result = 1.0; for (int i = 0; i <exponent; i++) { result *="base;" } return result; < pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of -3 is: 0.125 </pre> <h3>Optimizing for Integer Exponents:</h3> <p>When dealing with integer exponents, you may optimize the calculation by iterating only as many times as the exponent value. It decreases the number of unneeded multiplications.</p> <p> <strong>PowerOfNumber6.java</strong> </p> <pre> public class PowerOfNumber6 { public static void main(String[] args) { double base = 2.0; int exponent = 4; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { double result = 1.0; for (int i = 0; i <exponent; i++) { result *="base;" } return result; < pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of 4 is: 16.0 </pre> <h3>5. Using Bit Manipulation to Calculate Binary Exponents:</h3> <p>Bit manipulation can be used to better improve integer exponents. To do fewer multiplications, an exponent's binary representation might be used.</p> <p> <strong>PowerOfNumber7.java</strong> </p> <pre> public class PowerOfNumber7 { public static void main(String[] args) { double base = 2.0; int exponent = 5; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent > 0) { if ((exponent & 1) == 1) { result *= base; } base *= base; exponent >>= 1; } return result; } } </pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of 5 is: 32.0 </pre> <hr></exponent;></pre></exponent;>
Optimering til heltalseksponenter:
Når du har at gøre med heltalseksponenter, kan du optimere beregningen ved kun at iterere så mange gange som eksponentværdien. Det reducerer antallet af unødvendige multiplikationer.
PowerOfNumber6.java
public class PowerOfNumber6 { public static void main(String[] args) { double base = 2.0; int exponent = 4; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { double result = 1.0; for (int i = 0; i <exponent; i++) { result *="base;" } return result; < pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of 4 is: 16.0 </pre> <h3>5. Using Bit Manipulation to Calculate Binary Exponents:</h3> <p>Bit manipulation can be used to better improve integer exponents. To do fewer multiplications, an exponent's binary representation might be used.</p> <p> <strong>PowerOfNumber7.java</strong> </p> <pre> public class PowerOfNumber7 { public static void main(String[] args) { double base = 2.0; int exponent = 5; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent > 0) { if ((exponent & 1) == 1) { result *= base; } base *= base; exponent >>= 1; } return result; } } </pre> <p> <strong>Output:</strong> </p> <pre> 2.0 raised to the power of 5 is: 32.0 </pre> <hr></exponent;>
5. Brug af bitmanipulation til at beregne binære eksponenter:
Bitmanipulation kan bruges til bedre at forbedre heltalseksponenter. For at lave færre multiplikationer kan en eksponents binære repræsentation bruges.
PowerOfNumber7.java
public class PowerOfNumber7 { public static void main(String[] args) { double base = 2.0; int exponent = 5; double result = calculatePower(base, exponent); System.out.println(base + ' raised to the power of ' + exponent + ' is: ' + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent > 0) { if ((exponent & 1) == 1) { result *= base; } base *= base; exponent >>= 1; } return result; } }
Produktion:
2.0 raised to the power of 5 is: 32.0