Cod sursa(job #2902718)

Utilizator Shapka-NevedimkaSemenenco Stanislav Shapka-Nevedimka Data 16 mai 2022 19:13:28
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator c-32 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define  _CRT_SECURE_NO_WARNINGS
long int power(int x, int n)
{
    long int result = 1;

    while(n!=0)
    {
        if(n%2==1)
        {
            result*=x;
            n=n-1;
        }
        if(n>0)
        {
            x*=x;
            n=n/2;
        }
    }
    return result;
}
int main()
{
    int n,p;
    FILE* f;
    FILE* g;

    f = fopen("lgput.in", "rt");
    if (f == NULL)
    {
        printf("Nu exista fisierul!\n");
        exit(EXIT_FAILURE);
    }

    fscanf(f,"%d%d",&n,&p);
    fclose(f);
    g = fopen("lgput.out", "wt");
    if(g!=NULL)
    {
        fprintf(g, "%ld", power(&n,&p));
    }
    fclose(g);
}