农行笔试题之多少年后两国人均GDP相等

具体题目记得不准,只能大概描述一下,有两个国家A和B,分别给出A国的GDP(21.43)、GDP增长率(0.023)、人口数(3.28)、人口增长率(0.015),B国的GDP(14.36)、GDP增长率(0.061)、人口数(14)、人口增长率(0.0033),假设每年的GDP增长率和人口增长率保持不变的情况下,多少年后两国的人均GDP相等。

这道题考察的是我高中学过的幂、对数运算操作和java Math运算类的掌握情况。

我们先感性的对这个题分析一下,A国的GDP比B国的高,人口数却比B国的少,就目前来说,A国人均GDP高于B国的人均GDP,但是,B国的GDP增长率高于A国,同时,人口增长率低于A国,所以多年后,是有可能两国人均GDP相等的。这个A国类比于美国,B国类比于中国。

首先复习一下幂和对数的概念:
一般地,在数学上我们把n个相同的因数a相乘的积记做a^n 。这种求几个相同因数的积的运算叫做乘方,乘方的结果叫做。在a^n 中,a叫做底数,n叫做指数。a^n读作“a的n次方”或“a的n次幂“

在数学中,对数是对求幂的逆运算,正如除法是乘法的逆运算,反之亦然。 这意味着一个数字的对数是必须产生另一个固定数字(基数)的指数。
如果a的x次方等于N(a>0,且a≠1),那么数x叫做以a为底N的对数(logarithm),记作x=loga N。其中,a叫做对数的底数,N叫做真数。

在这里插入图片描述
上图是运算过程,把这个运算过程转换成代码

package com.zy.algorithmtrain;

/**
 * @Author zhongyili
 * @Date 2022/1/10
 *
 * 具体题目记得不准,只能大概描述一下,有两个国家A和B,
 * 分别给出A国的GDP(21.43)、GDP增长率(0.023)、人口数(3.28)、人口增长率(0.015),
 * B国的GDP(14.36)、GDP增长率(0.061)、人口数(14)、人口增长率(0.0033),
 * 假设每年的GDP增长率和人口增长率保持不变的情况下,多少年后两国的人均GDP相等。
 */
public class Algorithm1 {
    public static void main(String[] args) {
        float[] a = {21.43f, 0.023f, 3.28f, 0.015f};
        float[] b = {14.36f, 0.061f, 14f, 0.0033f};
        int result = algorithm1(a, b);
        System.out.println("result = " + result);
    }

    private static int algorithm1(float[] a, float[] b) {
        float value1 = (a[0] * b[2]) / (b[0] * a[2]);
        System.out.println("value1 = " + value1);
        float value2 = ((1 + b[1]) * (1 + a[3])) / ((1 + a[1]) * (1 + b[3]));
        System.out.println("value2 = " + value2);
        double result = Math.log(value1) / Math.log(value2);
        return (int)result;
    }
}

结果

value1 = 6.369744
value2 = 1.0492404
result = 38
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值