每日一题-Day29-工人生产之和
题目
每位职工随着对加工流程的熟悉和经验增加,日产量将会不断上升
假设第一天每位员工只能生产1个单位,接下来两天每天生产两个单位,再接下来三天每天生产三个单位
示例:
输入:1
输出:1
输入:2
输出:3
输入:3
输出:5
输入:4
输出:8
解题思路
将生产总数分割成一个个生产能力范围的累加和,如第一天生产一个单位,即1x1,第二三天生产两个单位,即2x2,当存在不完整的情况时,则加上剩余天数生产之和
package com.company;
import java.util.Scanner;
/**
* @author chenweitian
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int length = getN(n);
//完整生产天数生产总和
int result = 0;
//完整生产天数之和
int sum = 0;
for (int i = 0; i <= length; i++) {
result += i*i;
sum += i;
}
//剩余天数生产总和
int temp = (n - sum) * (length + 1);
System.out.println(result+temp);
sc.close();
}
/**
* 完整生产天数
*
* @param n
* @return int
* @author weitian.chen
* @date 2021/11/18
*/
public static int getN(int n) {
int i = 0;
int sum = 0;
while (sum <= n) {
sum += i;
i++;
}
return i-2;
}
}
来源:朋友