logo

Finden Sie die Leistung heraus, ohne die POW-Funktion in C zu verwenden

Die Funktion pow() wird verwendet, um die Potenz einer gegebenen ganzen Zahl zu berechnen. In diesem Artikel werden wir nun mit Hilfe eines Programms verstehen, wie man die Potenz einer ganzen Zahl berechnet, ohne die Funktion pow() in C zu verwenden.

Verwendung einer for-Schleife zur Bestimmung der Potenz einer gegebenen Ganzzahl

Stellen Sie sich vor, Sie müssen a ^ b finden. Die einfachste Methode besteht darin, a mit b mal mithilfe einer Schleife zu multiplizieren.

Sortieren Sie eine Arrayliste in Java
  • Sei a ^ b die Eingabe. Die Basis ist a, während der Exponent b ist.
  • Beginnen Sie mit einer Potenz von 1.
  • Führen Sie mithilfe einer Schleife die folgenden Anweisungen b-mal aus
  • Leistung = Leistung * a
  • Das Energiesystem hat die endgültige Lösung, a ^ b.

Lassen Sie uns den obigen Ansatz anhand eines Beispielprogramms in C besser verstehen:

 # include # include # include # include # include int Pow ( int a , int b ) { int power = 1 , i ; for ( i = 1 ; i <= b ; + i ) { power="power" * a } return int main ( long base , exponent printf ' enter : scanf % d & ^ pow < pre> <p> <strong>Output:</strong> </p> <pre> Enter Base: 5 Enter Power: 3 5 ^ 3 = 125 .......................... Process executed in 3.22 seconds Press any key to continue. </pre> <p> <strong>Explanation</strong> </p> <p>The code above has an O (N) time complexity, where N is the exponent. O is the space complexity (1).</p> <h3>Using While loop:</h3> <pre> # include # include # include # include # include int main ( ) { int n , exp , exp1 ; long long int value = 1 ; printf ( &apos; enter the number and its exponential :  n  n &apos; ) ; scanf ( &apos; % d % d &apos; , &amp; n , &amp; exp ) ; exp1 = exp ; // storing original value for future use // same as while ( ( - - exp ) ! = - 1 ) while ( exp - - &gt; 0 ) { value * = n ; // multiply n to itself exp times } printf ( &apos;  n  n % d ^ % d = % l l d  n  n &apos; , n , exp1 , value ) ; return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> enter the number and its exponential : 5 4 5 ^ 6 = 625 .......................... Process executed in 0.11 seconds Press any key to continue. </pre> <p> <strong>Explanation</strong> </p> <p>Long Long Int is twice as large as Long Int. The format specifier for long long int is percent lld.</p> <h2>Using Recursion to find the Power of Given Integer</h2> <p>Assume that a ^ b is the input. The power of &apos;a&apos; will increase by one with each recursive call. To obtain a ^ b, we call the recursive function b twice.</p> <ul> <li>Let Pow ( a, b ) be the recursive function used to calculate a ^ b.</li> <li>Simply return 1 if b == 0; else, return Pow (a, b -1) * a.</li> </ul> <p> <strong>Let&apos;s understand the above approach better with an example of a program in C:</strong> </p> <pre> # include # include # include # include # include int Pow ( int a , int b ) { if ( b = = 0 ) return 1 ; else return Pow ( a , b - 1 ) * X ; } int main ( ) { long long int base , exponent ; printf ( &apos; enter Base : &apos; ) ; scanf ( &apos; % d &apos; , &amp; base ) ; printf ( &apos; enter Power : &apos; ) ; scanf ( &apos; % d &apos; , &amp; exponent ) ; printf ( &apos; % d ^ % d = % d &apos; , base , exponent , Pow ( base , exponent ) ) ; return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Enter Base: 5 Enter Power: 4 5 ^ 4 = 625 .......................... Process executed in 1.22 seconds Press any key to continue. </pre> <p> <strong>Explanation:</strong> </p> <p>In the above example of a code in C, time complexity would be exponent N, O(N) &amp; O(N) space complexity, internal stack.</p> <hr></=>

Erläuterung

Der obige Code hat eine Zeitkomplexität von O (N), wobei N der Exponent ist. O ist die Raumkomplexität (1).

Verwendung der While-Schleife:

 # include # include # include # include # include int main ( ) { int n , exp , exp1 ; long long int value = 1 ; printf ( &apos; enter the number and its exponential :  n  n &apos; ) ; scanf ( &apos; % d % d &apos; , &amp; n , &amp; exp ) ; exp1 = exp ; // storing original value for future use // same as while ( ( - - exp ) ! = - 1 ) while ( exp - - &gt; 0 ) { value * = n ; // multiply n to itself exp times } printf ( &apos;  n  n % d ^ % d = % l l d  n  n &apos; , n , exp1 , value ) ; return 0; } 

Ausgabe:

 enter the number and its exponential : 5 4 5 ^ 6 = 625 .......................... Process executed in 0.11 seconds Press any key to continue. 

Erläuterung

Long Long Int ist doppelt so groß wie Long Int. Der Formatbezeichner für long long int ist „Prozent lld“.

Verwenden der Rekursion, um die Potenz einer gegebenen Ganzzahl zu ermitteln

Nehmen Sie an, dass a ^ b die Eingabe ist. Die Potenz von „a“ erhöht sich mit jedem rekursiven Aufruf um eins. Um a ^ b zu erhalten, rufen wir die rekursive Funktion b zweimal auf.

  • Sei Pow ( a, b ) die rekursive Funktion, die zur Berechnung von a ^ b verwendet wird.
  • Geben Sie einfach 1 zurück, wenn b == 0; andernfalls gib Pow (a, b -1) * a zurück.

Lassen Sie uns den obigen Ansatz anhand eines Beispielprogramms in C besser verstehen:

 # include # include # include # include # include int Pow ( int a , int b ) { if ( b = = 0 ) return 1 ; else return Pow ( a , b - 1 ) * X ; } int main ( ) { long long int base , exponent ; printf ( &apos; enter Base : &apos; ) ; scanf ( &apos; % d &apos; , &amp; base ) ; printf ( &apos; enter Power : &apos; ) ; scanf ( &apos; % d &apos; , &amp; exponent ) ; printf ( &apos; % d ^ % d = % d &apos; , base , exponent , Pow ( base , exponent ) ) ; return 0; } 

Ausgabe:

 Enter Base: 5 Enter Power: 4 5 ^ 4 = 625 .......................... Process executed in 1.22 seconds Press any key to continue. 

Erläuterung:

Im obigen Beispiel eines Codes in C wäre die Zeitkomplexität Exponent N, O(N) und O(N), Raumkomplexität, interner Stapel.