Is it possible to calculate the power of a number in C without a loop?
>>57198010
Yes.
>>57198050
substantiate your claim
>>57198010
No.
>>57198104
Recursion
>>57198159
do you have anything to back that up?
>>57198189
Of course.
>>57198189
EVERY loop can be transformed in a recursive function
And vice versa
>>57198206
please proceed
Do your own assignment OP. Anything you can do with a loop you can do with recursion. (Ignoring maximum stack size and compiler restraints)
>>57198443
This isn't an assignment. I'm learning C by myself.
int pwr(int num, int exp){
if(exp ==1)
return num;
return num * pwr(num, --exp);
}
Good luck with your assignment bro.
>>57198010
>power of a numberint pow_of_1(int n)
{
return n;
}
int power (int n, int p) {
if (n == 1) {
return 1;
} else if (n == 2) {
if (p == 1)
return 2;
else if (p == 2)
return 4;
else if (p == 3)
return 8;
else if (p == 4)
return 16;
else if (p == 5)
return 32;
else if (p == 6)
return 64;
else if (p == 7)
return 128;
else if (p == 8)
return 256;
else if (p == 9)
return 512;
else if (p == 10)
return 1024;
} else if (n == 3) {
if (p == 1)
return 3;
else if (p == 2)
return 9;
else if (p == 3)
return 27;
else if (p == 4)
return 81;
else if (p == 5)
return 243;
else if (p == 6)
return 729;
else if (p == 7)
return 2187;
else if (p == 8)
return 6561;
else if (p == 9)
return 19683;
else if (p == 10)
return 59049;
}
// und so weiter...
// you get the idea!
}
There you go, you can thank me later.
>>57198958
>>57198958
Wow, that's depressing what you just wrote there.
>>57198958
2017-0.2
use inline assembly with FYL2X and F2XM1
fun power(n, p, c)
if p==1
return n*c
else
return power(n, - - p, c)*p
>>57198010
Use recursion you dumb fuck
#include <stdio.h>
int power(int n1, int n2);
int main()
{
int base, powerRaised, result;
printf("Enter base number: ");
scanf("%d",&base);
printf("Enter power number(positive integer): ");
scanf("%d",&powerRaised);
result = power(base, powerRaised);
printf("%d^%d = %d", base, powerRaised, result);
return 0;
}
int power(int base, int powerRaised)
{
if (powerRaised != 1)
return (base*power(base, powerRaised-1));
else
return 1;
}
>>57198010
pow(2, 32)