vivo-2021Java笔试-智能手机产能问题vivo-2021Java笔试-智能手机产能问题路飞博客

vivo-2021Java笔试-智能手机产能问题

描述

在手机产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升。

假设第一天量产1台,接下来2天(即第二、三天)每天量产2件,接下来3天(即第四、五、六天)每天量产3件 … …

以此类推,请编程计算出第n天总共可以量产的手机数量。

输入:第n天

输出:第n天总共可以量产的手机数量

输入样例 1 :11

输出样例 1:35

输入样例 2 :5

输出样例 2:11


根据题意可得出这其实是一个数列,1,2,2,3,3,3,4,4,4,5,5,5,5,5……求前N项和的问题,除此之外,把数字从上到下叠起来,这也是一个金字塔,最顶端是1,一直往下走,每行的行数与个数都相同,求前N个数的和,这个题网上查了一下,好多方法,有些高手的解法压根就看不懂,有的超级简练,网上果然高手如云啊!我这里根据自己的理解用了比较简单好理解的方法,跟网上的也很类似。

                //	 1
		//	2 2
		//     3 3 3
		//    4 4 4 4
      	        //   5 5 5 5 5
		// 从上到下想象成一个金字塔,每行的行数与个数都相同,求前N个数的和。
		int sum = 1; // 初始值1,最顶端1
		int x = 2; 	 // 行数,从第2开始算起
		for(int i = 2; i <= n;) { // i为第几个数,从第2行第一个数开始算起,数量不超过N个
			int number = 0; 	  // 计数值,计算每行要加多少次相同的数字
			while(number < x && i <= n) {	 // 每行内的运算
				sum += x;			
				number++;			
				i++;				
			}
			x++; // 加完一轮后,行数就+1了。
		}
		return sum;

★附:对于该题目N+种解题方法,看不懂的欢迎回来看我的思路^-^

https://www.nowcoder.com/questionTerminal/2e4363c23c6741f98319d5a7e3882325

转载请注明:路飞博客 » vivo-2021Java笔试-智能手机产能问题