Informatică, întrebare adresată de 327Daniel, 8 ani în urmă

Scrieți un subprogram care primește doi parametri, n și x, și care returnează valoarea absolută radicalului de ordin n din x.

Restricții și precizări
Subprogramul are următorul antet: long long nroot(int n, long long x);
2≤n≤1000;
−260≤x≤260;
Se garantează faptul că rezultatul este întotdeauna un număr întreg.
Exemple:
nroot( 10, 1024 ) returnează 2;
nroot( 3, 0 ) returnează 0.
Stiti de ce nu primesc 100 de puncte la aceasta problema?
#include

using namespace std;
long long cautare_binara(long long &x)
{long long v[61],p=1;
int i;
if(x<0)
x=-x;
for(i=1;i<=60;i++)
{ p=p*2;
v[i]=p;
}
int sol=-1,right=60,left=0,mij;
while(left<=right)
{int mij=(left+right)/2;
if(v[mij]==x)
{sol=mij;
break;
}
if(v[mij]>x)
right=mij-1;
if(v[mij] left=mij+1;
}
return sol;
}
long long nroot(int n,long long x)
{if(x<0)
x=-x;
if(x!=1)
{if(n==2) return cautare_binara(x);
if(n>2)
{if(cautare_binara(x)==n)
return 2;
if(cautare_binara(x)>n) return cautare_binara(x)/n;
if(n>cautare_binara(x)) return 0;
}
if(cautare_binara(x)>n)
return cautare_binara(x)/n;
if(cautare_binara(x) return 0;
}
if(x==1)
return 1;
}
int main()
{int n;
long long x;
cin>>n>>x;
cout< return 0;
}


boiustef: da? eu nu m-am uitat la indicatii ... :)))
327Daniel: Am incercat solutia ta si primesc eroare...
boiustef: anume? eu am verificat-0 pe pbinfo
boiustef: ???
boiustef: ce si unde da eroare?
327Daniel: primesti 100 de puncte?
boiustef: da
327Daniel: o sa o pun inca o data pe site..
boiustef: Problema nroot Operații I/O tastatură/ecran
Limita timp 0.01 secunde Limita memorie Total: 8 MB / Stivă 4 MB
Id soluție #18304392 Utilizator Boiu Stefan (stefan52)
Fișier nroot.cpp Dimensiune 163 B
Data încărcării 02 Noiembrie 2019, 21:48 Scor / rezultat 100 puncte
327Daniel: Acum merge. Multumesc frumos!!!!

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <cmath>

long long nroot(int n, long long x)

{

   float exp=(double)1/n;

   if (x<0) x=-x;

   if (x==0) return 0;

   else return pow(x,exp);

}

Explicație:

Alte întrebări interesante