首页 > 试题广场 >

生产机器

[编程题]生产机器
  • 热度指数:297 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一台新机器,第4年可以生产一台机器,以后每一年生产1台。 生产出来的新机器第4年又可以生产一台机器,后续每年可以生产1台。
现在有一台新机器,求第n年总共有多少台机器。 计算结果对109+7取模。

输入描述:
输入一个数字 n,表示计算第 n 年总共有多少台机器。(1<=n<=106


输出描述:
输出第 n 年总共的机器的台数 X 对109+7取模之后的结果。
示例1

输入

10

输出

19
示例2

输入

15

输出

129
因为第四年后才开始增张,所以以后每一年增长量n就是三年前的机器量(因为那时候的机器到你这一年已经可以生成机器了)。因此每一年的量=增长量n+上一年的量
import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<Double> list = new ArrayList<>();
        list.add(Double.valueOf("1"));
        list.add(Double.valueOf("1"));
        list.add(Double.valueOf("1"));
        double mode = Math.pow(10,9) + 7;
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int index = 2;
        if (n <= 3)
            System.out.println(1);
        else {
            for (int i = 3; i < n; i++){
                double nums = (list.get(index) + list.get(index - 2))%mode;
                list.add(nums);
                index++;
            }
            System.out.printf("%.0f",list.get(index));
        }
    }
}




发表于 2020-11-09 22:37:17 回复(0)