OneCoder Avatar
OneCodercoderli.com · 958 篇博文
二级

C++ 算法考级专栏

真题分析、矩阵探测、递归回溯与基础语法

🎨 视觉封面

【GESP】C++二级练习 luogu-B2063 人口增长问题

📅 2025-01-17·✍️ OneCoder·计算中...·⏱️ 3 分钟
#GESP#C++#数学函数

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

luogu-B2063 人口增长问题

题目要求

题目描述

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

输入格式

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

输出格式

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

样例输入 #1

CONSOLE 1 行
13 10

样例输出 #1

CONSOLE 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 位。

示例代码

C++ 11 行
#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;
}

💡 OneCoder 资源指引

所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI

🤝 技术交流与答疑

欢迎加入:C++ GESP/CSP 考级答疑群(688906745)Java/Python交流群(982860385),点击可直接加群。

📚

猜你想读 · 相关文章推荐

OneCoder

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

读者讨论与留言

0 条讨论
✨ 支持点击留言直接回复 · Markdown 引用格式
💬 还没有读者留言,快来成为第一个讨论者吧!