题目描述:目前2019年的世界各国的GDP总量、GDP的年增长率、各国人口总数和人口年
增长率均已发布,请利用AB两国的这四个数据计算B国要通过多少年才能赶上A国的人均GDP。
(备注:B国在19年的人均GDP低于A国,但是B国的GDP增长率在2019年高于A国,并且假设世界各国以后每年均按照2019年的GDP增长率和人口增长率发展)。
例如:输入值:A_datas=[21.43,0.023,3.28,0.005] B_datas=[14.36,0.061,14.0,0.0033]
返回值:49
解答:
public static int solveYear(double A_datas[], double B_datas[]) {
if (A_datas.length != 4 || B_datas.length != 4) {
return -1;
}
double aPersonGdp = A_datas[0] / A_datas[2];
double bPersonGdp = B_datas[0] / B_datas[2];
int year = 0;
while (bPersonGdp < aPersonGdp) {
A_datas[0] = A_datas[0] * (1 + A_datas[1]);
B_datas[0] = B_datas[0] * (1 + B_datas[1]);
A_datas[2] = A_datas[2] * (1 + A_datas[3]);
B_datas[2] = B_datas[2] * (1 + B_datas[3]);
aPersonGdp = A_datas[0] / A_datas[2];
bPersonGdp = B_datas[0] / B_datas[2];
year++;
}
return year;
}