在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升。
假设第一天量产1台,接下来2天(即第二、三天)每天量产2件,接下来3天(即第四、五、六天)每天量产3件 ... ...
以此类推,请编程计算出第n天总共可以量产的手机数量。
思路:
第一天1台,接下来2天每天两件……可以抽象成平方和数列1^2+2^2+3^2……
class Solution:
def solution(self , n ):
a = 0 //存储结果
i = 1 //存储天的组数,即接下来i天每天i个
while (n - i > 0) : //n被扣到最后凑不够i个i天时,跳出循环
a += (i * i) //1^2+2^2+3^2……
n -= i //这一组i个i天计算完了,扣去
i += 1 //计算下一组i个i天
a += (i * n) //剩下的天数凑不够i个i天,直接把剩余天数n乘上每天i个
return a