luogu-B2063 人口增长问题

luogu-B2063 人口增长问题

GESP二级练习,数学函数应用,难度★✮☆☆☆。

luogu-B2063 人口增长问题

题目要求

题目描述

假设目前的世界人口有 xx 亿,按照每年 0.1%0.1\% 的增长速度,nn 年后将有多少人?

输入格式

一行两个正整数 xxnn,之间有一个空格。其中,1x100,1n1001 \leq x\leq 100, 1\leq n\leq 100

输出格式

一行一个数,表示答案。以亿为单位,保留到小数点后 44 位。

样例输入 #1

13 10

样例输出 #1

13.1306

题目分析

本题的关键是理解人口增长的规律。每年人口增长 0.1%0.1\%,这意味着每年人口增加的百分比为 0.1%0.1\%。为了计算 nn 年后的人口,我们可以使用复利增长的公式:

P=P0×(1+r)nP = P_0 \times (1 + r)^n

其中,PPnn 年后的人口,P0P_0 是初始人口,rr 是每年的增长率(这里为 0.1%0.1\%),nn 是年数。

在本题中,我们需要计算 nn 年后的人口,并保留到小数点后 44 位。为此,我们可以使用 pow 函数来计算 (1+r)n(1 + r)^n,然后乘以初始人口 P0P_0,即 xx

在代码中,我们首先读取输入的 xxnn,然后使用 pow 函数计算 (1+0.001)n(1 + 0.001)^n,并乘以 xx,得到 nn 年后的人口。最后,我们使用 printf 函数输出结果,保留到小数点后 44 位。

{% include custom/custom-post-content-inner.html %}

示例代码

#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main() {
    int x, n; // 定义变量x和n
    cin >> x >> n; // 读取输入的x和n
    double ans = pow(1.001, n) * x ; // 计算答案
    printf("%.4f", ans); // 输出答案,保留4位小数
    return 0;
}

{% include custom/custom-post-content-footer.md %}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
Last updated on