Cod sursa(job #2589665)

Utilizator MihaiutcnStancu Mihai Cristian Mihaiutcn Data 26 martie 2020 18:06:34
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>
#include <stdlib.h>

float putere(float x,int n)
{
    if (n < 0)
        return putere(1 / x, -n);
    else if (n == 0)
        return  1;
    else if (n == 1)
        return  x ;
    else if (n%2==0)
        return putere(x * x,  n / 2);
    else if (n%2)
        return x * putere(x * x, (n - 1) / 2);

}

int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    float n;
    int p;
    scanf("%f %d",&n,&p);
    printf("%g",putere(n,p));
    return 0;
}