logo

Uzziniet jaudu, neizmantojot POW funkciju C

Funkciju pow() izmanto, lai aprēķinātu dotā veselā skaitļa jaudu. Tagad šajā rakstā mēs ar programmas palīdzību sapratīsim, kā aprēķināt vesela skaitļa jaudu, neizmantojot funkciju pow() valodā C.

Izmantojot cilpu, lai noteiktu dotā veselā skaitļa jaudu

Iedomājieties, ka jums ir jāatrod ^ b. Vienkāršākā metode ir reizināt a ar b reizes, izmantojot cilpu.

  • Lai a ^ b ir ievade. Bāze ir a, savukārt eksponents ir b.
  • Sāciet ar jaudu 1.
  • Izmantojot cilpu, izpildiet šādas instrukcijas b reizes
  • jauda = jauda * a
  • Energosistēmai ir gala risinājums, a ^ b.

Labāk sapratīsim iepriekš minēto pieeju, izmantojot programmas piemēru C:

 # 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></=>

Paskaidrojums

javascript

Iepriekš minētajam kodam ir O (N) laika sarežģītība, kur N ir eksponents. O ir telpas sarežģītība (1).

Kamēr cilpas izmantošana:

 # 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; } 

Izvade:

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

Paskaidrojums

Long Long Int ir divreiz lielāks par Long Int. Formāta specifikācija long long int ir procenti lld.

kā noņemt atlasi programmā gimp

Rekursijas izmantošana, lai atrastu dotā veselā skaitļa jaudu

Pieņemsim, ka ievade ir a ^ b. 'a' jauda palielināsies par vienu ar katru rekursīvo zvanu. Lai iegūtu a ^ b, mēs divreiz izsaucam rekursīvo funkciju b.

java math.min
  • Lai Pow ( a, b ) ir rekursīvā funkcija, ko izmanto a ^ b aprēķināšanai.
  • Vienkārši atgrieziet 1, ja b == 0; citādi atgriež Pow (a, b -1) * a.

Labāk sapratīsim iepriekš minēto pieeju, izmantojot programmas piemēru C:

 # 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; } 

Izvade:

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

Paskaidrojums:

Iepriekš minētajā koda piemērā C, laika sarežģītība būtu eksponents N, O(N) un O(N) telpas sarežģītība, iekšējā steks.