(N + d - 1) / d
- это совершенно нормальный способ написания целочисленного выражения в C ++.Все члены в этом выражении имеют целочисленный тип, поэтому, в частности, числитель и знаменатель деления /
также int
.Следовательно, C ++ будет применять /
в качестве оператора деления для int
типов.
Я не совсем уверен, что именно вы задаете в любом из ваших вопросов.У этого «шаблона» нет определенного имени, о котором я знаю, но я не уверен, почему вы думаете, что оно должно иметь его.Это просто математическое выражение.
Что касается «облегчения понимания», это, конечно, субъективно, но (кроме того факта, что переменные не имеют информативных имен), я нахожу его отлично читаемым.Если вы ищете алгебраическое упрощение выражения, то я бы предостерег вас от этого.Хотя (N/d) + (1/d) - 1
, например, выглядит математически эквивалентным, в общем случае это не так.Это происходит главным образом из-за вышеупомянутого факта, что это целочисленные деления, но также и потому, что тип int
имеет конечную точность, которая может повлиять на результат в некоторых случаях (например, с целочисленным переполнением).