x^Nの時間複雑度(logn)を計算するアルゴリズム
/* x^N O(logN) */
#include //C
double Pow(double x, int n); //C
int main(int argc, char const *argv[]) //C
{
int n = 0;
double x = 0;
/* */
printf("Please enter a real number as x:");
scanf("%lf", &x);
printf("Please enter a positive integer as n:");
scanf("%d", &n);
/* */
printf("%lf^%d = %lf
", x, n, Pow(x, n));
while(1) getchar(); // , , 。
return 0;
}
double Pow(double x, int n) //
{
double ret = 0; // , ret
if (x != 0) // x 0,
{
ret = 1;
while(n > 0) // n 0 ,
{
if (n % 2 == 0) // n
{
x *= x;
n /= 2;
}
else // n
{
ret *= x;
n -= 1;
}
}
}
return ret; //
}
###*プログラムを実行し、xとnをそれぞれ入力すると、x^nの結果が得られます.