LETCODE 1103 distributeCandies

简单的数学逻辑问题
我可能写的蠢了一点,结果没问题

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;
	}
};
发布了9 篇原创文章 · 获赞 0 · 访问量 132

猜你喜欢

转载自blog.csdn.net/qq_40742888/article/details/97621445
今日推荐