КГ
Кирилл Гордеев

Помогите решить задачу не пойму в чём ошибка

#include "stdafx.h"

#include

#include

int _tmain(int argc, _TCHAR* argv[])

{

long ans,x=0,y,i,j,k=0,l,m,n;

scanf("%ld %ld",&m,&n);

if(m>n){ans=m;m=n;n=ans;}

for(i=0;i<=100009;i++)

{

if((m>i*i)&&(x==0)&&(m<=(i+1)*(i+1)))x=i+1;

if((n>i*i)&&(k==0)&&(n<=(i+1)*(i+1)))k=i+1;

if((x!=0)&&(k!=0))break;

}

y=m-(x-1)*(x-1);l=n-(k-1)*(k-1);

if(m!=1)if(y%2==0)x=x*2-2;else x=x*2-1;

if(l%2==0)k=k*2-2;else k=k*2-1;

ans=fabs(k-x);

y=(y+1)/2;l=(l+1)/2;

if((l>=y)&&(l<=y+k-x))ans+=0;else

{

m=abs(l-y);n=abs(y+k-x-l);

l=m>n?n:m;

ans+=2*l;

}

printf("%ld\n",ans);

return 0;

}

существует более одного экземпляра перегруженная функция "fabs", соответствующего списку аргументов:

функция "fabs(long double _X)"

функция "fabs(float _X)"

функция "fabs(double _X)"

типы аргументов: (long)

SL
Svetlana Lebedeva

fabs работает с дробными числами (float), а у тебя ans, k и x - целые, т. е. там 2 неявных преобразования происходит, вот компилятор и не может разобраться, какое именно надо подставить (в float или в double). Используй обычный abs.

АР
Андрей Рыбин

где ошибка? в чем ошибка? что не понятно?
перефразируй пожалуйста свой вопрос 🙂

ошибка в логике программы?
не так считает?
при компилировании ошибка?
при исполненении?

ОФ
Ольга Ф.

Издеваешься? Это ж быдлокод!

А вообще, попробуй так: ans=((k>x)?k-x:x-k);

Похожие вопросы
Помогите решить задачу по С# :-)
помогите решить задачу на с++
помогите с программированием, устал уже. не пойму в чем ошибка, из-за чего ругаеться
Как решить задачу? Ничего не пойму... ( -Информатика
c++ ошибка в sin никак не пойму в чём дело, помогите пожалуйста
помогите с delphi, выводит ошибку. Как решить задачу?
Никак не пойму в чем ошибка
помогите с задачей. не пойму в чем ошибка
в чём здесь ошибка с++
Где ошибка? помогите решить задачу.