人口增长问题

GitHub跳转原题关系图返回列表

按每年 0.1% 的复利增长,用 x*1.001^n 计算人口。

OJ: noi_openjudge

题目 ID: ch0105-14

难度:入门

标签:数学浮点数python

日期: 2026-07-30 23:01

题意

人口基数为 xx 亿,每年增长 0.1%,求 nn 年后的人口,保留四位小数。

思路

每年乘以 1.0011.001,连续 nn 年的结果为 x×1.001nx\times1.001^n。Python 的 ** 直接表达乘方,最后使用 .4f

代码

Python代码

python
population, years = map(int, input().split())
print(f"{population * 1.001**years:.4f}")

C++代码

cpp
#include <cstdio>

int main(){
    double a;
    int n;
    int i;
    scanf("%lf",&a);
    scanf("%d",&n);
    for (i=1;i<=n;i++){
        a = a*1.001;
    }
    printf("%0.4lf",a);
    return 0;
}

复杂度

使用内建幂运算,额外空间复杂度为 O(1)O(1)

总结

固定增长率连续复利可写成“初值乘增长因子的年数次方”。