Cod sursa(job #645850)

Utilizator StefanLacheStefan Lache StefanLache Data 10 decembrie 2011 17:02:25
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
void citire(int *p,int *n)
{
    scanf("%i",p);
    scanf("%i",n);
}
int ridic_la_putere(int x,int n)
{
    if(n==0)
        return 1;
    if(n%2==0)
    {

        int val = ridic_la_putere(x,n/2);
        return    val*val;
    }
    else
    {
        int val = ridic_la_putere(x,(n-1)/2);
        return x*val*val;
    }
}
int main()
{
    int x,putere;
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    freopen("numar.in","r",stdin);
    citire(&x,&putere);int aux=x;
    printf("%i",ridic_la_putere(x,putere));
    /*for(int i=2;i<=putere;i++)
        x*=aux;
    printf("%i",x);*/
    return 0;
}