Дистанционная подготовка: не знаю где ошибся(
не знаю где ошибся(
от Константин Мишин - Пятница 2 Январь 2015, 14:48
311. Быстрое возведение в степень
  using namespace std;


double m(float a, int b){
double c=1;
int i=1;
if(b>0){
c=a;
for(;i*20;i++){c=c*a;};
}else{ for(i=-1;i>=b;i--){c=c/a;};
};
return c;

}

int main() {
float a1;
int b1;

scanf("%f%d",&a1,&b1);
printf("%f",m(a1,b1));
return 0;

}

не знаю где ошибка, но последнию пару тестов не проходит(, помогите авторы!
Re: не знаю где ошибся(
от Peter Cherepanov - Суббота 3 Январь 2015, 03:45
  Для начала, ваш алгоритм имеет сложность N и быстрым считаться не может.
А ошибка, скорее всего, вызвана недостатчной точностью параметра a. Почему он float ?