Я пишу программу, которая должна принимать целое число N в диапазоне 3 <= N <= 10 ^ 18. Это одна из операций, которые я должен выполнить с N. </p>
final=((0.5*(pow(2,0.5))*(pow((pow(((N/2)-0.5),2)+pow((N/2)-0.5,2)),0.5)))-0.5)*4;
N
таков, что final
гарантированно содержит целое число.
Проблема в том, что я могуне храните N
в типе float, так как он слишком большой. Если я сохраню его в long long int, ответ будет неправильным (я думаю, что это потому, что промежуточное значение N / 2
затем округляется).