文章

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

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

luogu-B2063 人口增长问题

题目要求

题目描述

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

输入格式

一行两个正整数 xn,之间有一个空格。其中,1x100,1n100

输出格式

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

样例输入 #1

1
13 10

样例输出 #1

1
13.1306

题目分析

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

P=P0×(1+r)n

其中,Pn 年后的人口,P0 是初始人口,r 是每年的增长率(这里为 0.1%),n 是年数。

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

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

示例代码

1
2
3
4
5
6
7
8
9
10
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;
}

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

GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页

luogu-”系列题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

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

本文由作者按照 CC BY 4.0 进行授权