简单的数学逻辑问题
我可能写的蠢了一点,结果没问题
class Solution {
public:
vector<int> distributeCandies(int candies, int num_people)
{
vector<int> arry;
int temp = candies;
int neg = 0;
int index;
int n;
while (temp>=0)
{
++neg;
temp = temp - neg;
}
n = (neg-1) / num_people+1;
int remind = temp + neg;
index = neg%num_people;
if (index == 0) { index = num_people; }
for (int i = 1; i <=num_people; i++)
{
if (i < index)
{
int caculate0 = 0;
for (int j = 0; j < n;j++)
{
caculate0 += j*num_people + i;
}
arry.push_back(caculate0);
}
else if(i==index)
{
int caculate1 = 0;
for (int j = 0; j < n-1; j++)
{
caculate1 += j*num_people + i;
}
arry.push_back(caculate1+remind);
}
else
{
int caculate2 = 0;
for (int j = 0; j < n - 1; j++)
{
caculate2 += j*num_people + i;
}
arry.push_back(caculate2);
}
}
return arry;
}
};