程序代码:
#include <stdio.h>
void main()
{ int i;
float f=100*1.08-10,f1; /*第一年取十萬,f為第二年的本金*/
for(i=2;i<=100;i++) /*因為第一年我計算過所以i=2,i<=100是我假設的,不可能取100年吧?*/
{ if(f*1.08-10>0)
f=f*1.08-10; /*如果上一年的本息和減去取的10萬大於0的話,就把它(f)作為第二年的本金,否則(即最後一年的本息和小於十萬)終止運算*/
else
break;
}
f1=f*1.08; /*最後一年的本息和*/
printf("i=%d f=%f f1=%f",--i,f,f1); /*因為使用的是for循環所以實際數要減1,即--i;*/
getch();
}
result: i=20
f=8.476045
f1=9.154128
PS:
因為我算的是能取多少年10萬,i=20,即20年;第二十一年時,本金為f=8.476045,加上利息也隻有f1=9.154128,不夠取十萬了,依照題意每年取十萬,但第二十一年本息和為9.154128萬,不夠取了,所以我認為是20年;但如果題目強調最後一年不夠十萬十也取錢,即取完卡內余額,這樣才能嚴謹地算做21年清空帳戶;
RE:
我估計出題者的答案肯定是21年,我隻說他出題有點不嚴謹而已,晚上無聊別怪我太較真了,呵呵!