购买不同的理财产品,财富的增长速度会有很大差别。小明起初有 a 元存款,选择了年增长速度为 b% 的理财方式;小刚起初有 x 元存款,选择了年增长速度为 y% 的理财方式,所有理财产品都是年复利,即一年进行一次利息计算,所得的利息和本金一起作为下一年的本金。
编写程序,计算经过多少年,小刚的存款会超过小明。
如果在50年内,小刚的存款会超过小明,则输出具体年数。
如果在50年内,小刚的存款无法超过小明,则输出“NOT POSSIBLE”。
用例输入 1
2000 5 1000 10
用例输出 1
15
用例输入 2
2000 5 1000 6
用例输出 2
NOT POSSIBLE
这样的话要分两种情况,一种是能超过,一种是不能。
第一种情况:a == x && b == y 这样就永远也超越不了
第二种情况:a < x 也是超越不了
///最后代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
double a,b,x,y;
int q = 0;
ios::sync_with_stdio(false);
cin >> a >> b >> x >> y;
if(a == x && b == y){
cout << "NOT POSSIBLE";
return 0;
}
if(a<x){
cout<<0;
}
while(a > x){
a *= 1 + b * 0.01;
x *= 1 + y * 0.01;
q ++;
if(a < x){
cout << q;
return 0;
}
if(q == 50 && (a > x || a == x)){
cout << "NOT POSSIBLE";
return 0;
}
}
return 0;
}