以给定的年复利利率计算任何金额翻倍的时间
Calculating time for any sum to double, at a given rate of interest compounded annually
我试图编写一个程序来计算在给定的年复利利率下任何一笔钱翻倍所需的时间。
当我运行这个程序的时候,我发现
- 循环没有退出
- 计数器无限递增
- 总和停留在 100
我做错了什么?
int main(){
cout << "Please enter the interest rate in % per annum:";
int counter = 0;
int sum=100;
int interest = 0;
cin >> interest;
while(sum<200){
counter++;
sum += sum*(interest / 100);
}
cout << "\n It would take about " << counter << " years to double";
}
interest
是一个 int
所以这一行
interest / 100
正在做整数除法,永远是0
。快速解决方法是更改文字,以便您进行浮点数学运算
sum += sum*(interest / 100.0);
我试图编写一个程序来计算在给定的年复利利率下任何一笔钱翻倍所需的时间。
当我运行这个程序的时候,我发现
- 循环没有退出
- 计数器无限递增
- 总和停留在 100
我做错了什么?
int main(){
cout << "Please enter the interest rate in % per annum:";
int counter = 0;
int sum=100;
int interest = 0;
cin >> interest;
while(sum<200){
counter++;
sum += sum*(interest / 100);
}
cout << "\n It would take about " << counter << " years to double";
}
interest
是一个 int
所以这一行
interest / 100
正在做整数除法,永远是0
。快速解决方法是更改文字,以便您进行浮点数学运算
sum += sum*(interest / 100.0);