logo

Сила на числото в Java

В този раздел ще пишем Java програми за определяне на степента на число. За да получите степента на число, умножете числото по неговия показател.

Пример:

Да приемем, че основата е 5, а показателят е 4. За да получите степента на число, умножете го по себе си четири пъти, т.е. (5 * 5 * 5 * 5 = 625).

Как да определим степента на число?

  • Основата и степента трябва да бъдат прочетени или инициализирани.
  • Вземете друга променлива степен и я задайте на 1, за да запазите резултата.
  • Умножете основата по степен и запазете резултата в степен, като използвате цикъла for или while.
  • Повторете стъпка 3, докато експонентата стане нула.
  • Отпечатайте изхода.

Методи за намиране на степента на число

Има няколко метода за определяне на степента на числото:

методи в java
  1. Използване на Java for Loop
  2. Използване на Java while Loop
  3. Използване на рекурсия
  4. Използване на метода Math.pow().
  5. Използване на битова манипулация

1. Използване на Java for Loop

Цикъл for може да се използва за изчисляване на степента на число чрез многократно умножаване на основата сама по себе си.

PowerOfNumber1.java

java колекция
 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 &gt; 0) { result *= base; exponent--; } System.out.println(base + &apos; raised to the power of &apos; + power + &apos; is &apos; + 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&apos;s an example of how recursion may be used to compute a number&apos;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 + &apos; raised to the power of &apos; + exponent + &apos; is &apos; + 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&apos;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 + &apos; raised to the power of &apos; + exponent + &apos; is &apos; + 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&apos;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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + result); } static double calculatePower(double base, int exponent) { if (exponent &gt;= 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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + 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&apos;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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent &gt; 0) { if ((exponent &amp; 1) == 1) { result *= base; } base *= base; exponent &gt;&gt;= 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. Използване на Java while Loop

По същия начин може да се използва цикъл while за постигане на същия резултат чрез умножаване на основата много пъти.

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 &gt; 0) { result *= base; exponent--; } System.out.println(base + &apos; raised to the power of &apos; + power + &apos; is &apos; + result); } } 

Изход:

 2 raised to the power of 3 is 8 

3. Използване на рекурсия:

Рекурсията е процес на разделяне на проблем на по-малки подпроблеми. Ето пример за това как може да се използва рекурсия за изчисляване на степента на число.

PowerOfNumber3.java

npm чист кеш
 public class PowerOfNumber3 { public static void main(String[] args) { int base = 2; int exponent = 3; int result = power(base, exponent); System.out.println(base + &apos; raised to the power of &apos; + exponent + &apos; is &apos; + result); } public static int power(int base, int exponent) { if (exponent == 0) { return 1; } else { return base * power(base, exponent - 1); } } } 

Изход:

 2 raised to the power of 3 is 8 

4. Използване на метода Math.pow().

Функцията Math.pow() на пакета java.lang изчислява директно мощността на цяло число.

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 + &apos; raised to the power of &apos; + exponent + &apos; is &apos; + result); } } 

Изход:

 2.0 raised to the power of 3.0 is 8.0 

Работа с отрицателни експоненти:

Когато се работи с отрицателни показатели, идеята за реципрочни степени може да бъде полезна. Например x^(-n) е равно на 1/x^n. Ето пример за работа с отрицателни показатели.

PowerOfNumber5.java

string.format в java
 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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + result); } static double calculatePower(double base, int exponent) { if (exponent &gt;= 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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + 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&apos;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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent &gt; 0) { if ((exponent &amp; 1) == 1) { result *= base; } base *= base; exponent &gt;&gt;= 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;>

Оптимизиране за цели числа:

Когато работите с цели числа, можете да оптимизирате изчислението, като повторите само толкова пъти, колкото е стойността на степента. Намалява броя на ненужните умножения.

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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + 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&apos;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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent &gt; 0) { if ((exponent &amp; 1) == 1) { result *= base; } base *= base; exponent &gt;&gt;= 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. Използване на битова манипулация за изчисляване на двоични експоненти:

Манипулирането на битове може да се използва за по-добро подобряване на показателите на целите числа. За да се правят по-малко умножения, може да се използва двоично представяне на експонента.

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 + &apos; raised to the power of &apos; + exponent + &apos; is: &apos; + result); } static double calculatePower(double base, int exponent) { double result = 1.0; while (exponent &gt; 0) { if ((exponent &amp; 1) == 1) { result *= base; } base *= base; exponent &gt;&gt;= 1; } return result; } } 

Изход:

 2.0 raised to the power of 5 is: 32.0