问题:给定存款金额sum,利率p和时间段数n,用C++编写一个递归函数来计算n个时间段后的存款总和,假设存款在每个时间段赚取p %的利息,我有代码实现,但我遇到了一个问题,因为我得到的测试数据说存款总和是120,当这些是输入时,输入总和:100输入百分比:10输入时间段:2但是我的代码不能得到120,我的答案只能得到352,如果我去掉“return sum +存款(sum,p,n - 1)”中的sum+;“我得到了121,这是最接近120的答案
int deposit(int sum, int p, int n) {
if (n == 0) {
return sum;
}
else {
int interest = sum * p / 100;
sum += interest;
return sum + deposit(sum, p, n - 1);
}
}
1条答案
按热度按时间l7mqbcuq1#
显然,教授想要简单的,而不是复利,你可以这样做:
虽然它是递归的,但它也有点奇怪,因为你每次都添加完全相同的利息(简单利息)。这甚至不是递归的教学应用,因为简单的解决方案就是这样: