在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升。
假设第一天量产1台,接下来2天(即第二、三天)每天量产2件,接下来3天(即第四、五、六天)每天量产3件 … …
以此类推,请编程计算出第n天总共可以量产的手机数量。
class Solution {
public int solution (int n) {
int i=0;//等差数列差值为一
int j=n;//n值,用等差数列一直减,找到图中的层数
int k=0;//总产量
while(j>i){
i=i+1;//等差数列递增
k=k+i*i;//层层加上总产量,每次除都加,一直到除不尽
j=j-i;//用n除一个等差数列,最后得到商和余数,商是i,余数是j
}//循环结束后i是n项可以填满的层数,j是最后一层剩余的项数
k=k+j*(i+1);//层数就等于这一层的项的值,加上最后一层
return k;
}
}