藻类植物

[题目链接](https://www.nowcoder.com/practice/624cee6440a644398df5bade13297f49)

思路

本题给出藻类植物的递推关系式:

$$

已知 ,要求输出 共 10 个值。

直接按递推公式循环 10 次即可。每次用当前的 计算下一年的值并输出。

数据范围分析

最大为 5, 最大为 200,迭代 10 次后 最大约为 ,不会超过 64 位整数范围。C++ 中使用 long long 即可保证安全。

代码

#include <iostream>
using namespace std;
int main() {
    long long r, d, x;
    cin >> r >> d >> x;
    for (int i = 0; i < 10; i++) {
        x = r * x - d;
        cout << x << endl;
    }
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long r = sc.nextLong(), d = sc.nextLong(), x = sc.nextLong();
        for (int i = 0; i < 10; i++) {
            x = r * x - d;
            System.out.println(x);
        }
    }
}
r, d, x = map(int, input().split())
for _ in range(10):
    x = r * x - d
    print(x)
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });
rl.on('line', function(line) {
    let [r, d, x] = line.trim().split(' ').map(Number);
    for (let i = 0; i < 10; i++) {
        x = r * x - d;
        console.log(x);
    }
});

复杂度分析

  • 时间复杂度:,固定循环 10 次。
  • 空间复杂度:,只使用常数个变量。