首页 > 试题广场 >

vivo智能手机产能

[编程题]vivo智能手机产能
  • 热度指数:6905 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升。
假设第一天量产1台,接下来2天(即第二、三天)每天量产2件,接下来3天(即第四、五、六天)每天量产3件 ... ... 
以此类推,请编程计算出第n天总共可以量产的手机数量。



示例1

输入

11

输出

35

说明

第11天工人总共可以量产的手机数量

备注:
输入:n,代表第n天
输出:总的量产手机数量
import java.util.*;


public class Solution {
    /**
     * 
     * @param n int整型 第n天
     * @return int整型
     */
    public int solution (int n) {
        // write code here
        int i,m=0,sum = 0,sum1=1;
        for (i = 1; i < n; i++) {
            sum=sum+i;
            if(sum>n)
                break;
        }
        int x=n-(sum-i);
        for(int j=1;j<i;j++){
            sum1=j*j;
            m=m+sum1;
        }
        for(int h=0;h<x;h++){
            m=m+i;
        }
        return m;
    }
}
发表于 2020-06-06 19:27:07 回复(0)
class Solution {
    public int produce(int n){
        int ans =0;

        int produce =0;
        int day =0;
        while(day<n){
            int temp = Math.min(produce, n-day);
            ans += produce*temp;
            day+=temp;
            produce++;
        }

        return ans;
    }
}

发表于 2020-05-27 16:45:12 回复(0)
   static int solution1(int n) {
        int pn = 0;
        int sum = 0;
        int m = 0;
        for (int i = 0; i < n; i++) {
            sum = sum + i;
            if (sum >= n) {
                m = sum - n;
                pn = pn + (i - m) * i;
                break;
            }
            pn = pn + i * i;
        }
        return pn;
    }

发表于 2020-04-18 16:30:12 回复(0)
列了个一元二次方程硬解的。。。
    public static int solution (int n) {
        int x = (int)Math.ceil((-1 + Math.sqrt(1 + 8 * n)) / 2);
//        System.out.println(x);
        int sum = 0;
        for (int i = 1; i < x; i++) {
            sum += i * i;
        }
        int day = (1 + x - 1) * (x - 1) / 2 + 1;
//        System.out.println(day);
        sum += x * (n - day + 1);
        return sum;
    }


发表于 2020-03-30 22:13:26 回复(0)