Funktiota pow() käytetään laskemaan tietyn kokonaisluvun potenssi. Nyt tässä artikkelissa ymmärrämme ohjelman avulla, kuinka kokonaisluvun potenssi lasketaan käyttämättä funktiota pow() C:ssä.
java swing
For-silmukan käyttäminen tietyn kokonaisluvun potenssin määrittämiseen
Kuvittele, että sinun on löydettävä ^ b. Helpoin tapa on kertoa a b:llä silmukan avulla.
- Olkoon a ^ b syöte. Kanta on a, kun taas eksponentti on b.
- Aloita potenssilla 1.
- Suorita seuraavat ohjeet silmukan avulla b kertaa
- teho = teho * a
- Sähköjärjestelmällä on lopullinen ratkaisu, a ^ b.
Ymmärretään yllä olevaa lähestymistapaa paremmin esimerkin avulla C:n ohjelmasta:
# 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 ( ' enter the number and its exponential : n n ' ) ; scanf ( ' % d % d ' , & n , & exp ) ; exp1 = exp ; // storing original value for future use // same as while ( ( - - exp ) ! = - 1 ) while ( exp - - > 0 ) { value * = n ; // multiply n to itself exp times } printf ( ' n n % d ^ % d = % l l d n n ' , 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 'a' 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'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 ( ' enter Base : ' ) ; scanf ( ' % d ' , & base ) ; printf ( ' enter Power : ' ) ; scanf ( ' % d ' , & exponent ) ; printf ( ' % d ^ % d = % d ' , 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) & O(N) space complexity, internal stack.</p> <hr></=>
Selitys
Yllä olevalla koodilla on O (N) aikakompleksisuus, jossa N on eksponentti. O on avaruuden kompleksisuus (1).
lateksi tekstin koko
While-silmukan käyttäminen:
# include # include # include # include # include int main ( ) { int n , exp , exp1 ; long long int value = 1 ; printf ( ' enter the number and its exponential : n n ' ) ; scanf ( ' % d % d ' , & n , & exp ) ; exp1 = exp ; // storing original value for future use // same as while ( ( - - exp ) ! = - 1 ) while ( exp - - > 0 ) { value * = n ; // multiply n to itself exp times } printf ( ' n n % d ^ % d = % l l d n n ' , n , exp1 , value ) ; return 0; }
Lähtö:
enter the number and its exponential : 5 4 5 ^ 6 = 625 .......................... Process executed in 0.11 seconds Press any key to continue.
Selitys
Long Long Int on kaksi kertaa suurempi kuin Long Int. Pitkän pitkän int:n muotomäärite on % lld.
Rekursion käyttäminen tietyn kokonaisluvun tehon löytämiseen
Oletetaan, että a ^ b on syöte. 'a':n teho kasvaa yhdellä jokaisella rekursiivisella kutsulla. Saadaksesi ^ b, kutsumme rekursiivista funktiota b kahdesti.
- Olkoon Pow ( a, b ) rekursiivinen funktio, jota käytetään laskemaan a ^ b.
- Palauta yksinkertaisesti 1, jos b == 0; muussa tapauksessa palauta Pow (a, b -1) * a.
Ymmärretään yllä olevaa lähestymistapaa paremmin esimerkin avulla C:n ohjelmasta:
python-tulostus 2 desimaalin tarkkuudella
# 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 ( ' enter Base : ' ) ; scanf ( ' % d ' , & base ) ; printf ( ' enter Power : ' ) ; scanf ( ' % d ' , & exponent ) ; printf ( ' % d ^ % d = % d ' , base , exponent , Pow ( base , exponent ) ) ; return 0; }
Lähtö:
Enter Base: 5 Enter Power: 4 5 ^ 4 = 625 .......................... Process executed in 1.22 seconds Press any key to continue.
Selitys:
Yllä olevassa C:n koodin esimerkissä aikamonimutkaisuus olisi eksponentti N, O(N) & O(N) avaruuden monimutkaisuus, sisäinen pino.
=>