我是这样理解:应该是死期存款,存期决定年利率,如存期3年,则3年内年利率均按3.24算 (注意:如果和你的理解不同,你再问我,把你的想法告诉我,我会再给你回答的)
完整源代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BenXi {
public static void main(String[] args) {
int benJin = 0;
double liLv=0;
double liXi=0;
double benXi=0;
System.out.print("请输入本金:\n");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s=null;
try {
s = br.readLine();
if ("".equals(s))
s = "0";
benJin = Integer.parseInt(s);
} catch (Exception ex) {
System.out.println("Exception:" + ex);
}
for(int i=1;i<=5;i++){
if(i!=4){
if(i==1) liLv=0.0225;
else if(i==2) liLv=0.027;
else if(i==3) liLv=0.0324;
else if(i==5) liLv=0.036;
liXi=benJin*liLv*i;
benXi=benJin+liXi;
System.out.println("存期" +i+"年 利息=" + liXi+",本息=" +benXi);
}
}
}
}
装配一个Map
Map
map.put(1,0.025f);
map.put(2,0.027f);
map.put(3,0.0324f);
map.put(5,0.036f);
(一般情况下数据需要写在配置文件里,降低耦合性,易于维护)
public float getResust(int year, float money, Map
throws Exception {
float f = 0f;
switch (year) {
case 1:
f = money + money * year * map.get(year);
break;
case 2:
f = money + money * year * map.get(year);
break;
case 3:
f = money + money * year * map.get(year);
break;
case 5:
f = money + money * year * map.get(year);
break;
default:
throw new Exception("没有定义");
}
return f;
}
我来试试。应该是这样的吧。
如果只存了
一年,本息应该是:1000+1000*2.25%*1
二年,本息应该是:1000+1000*2.25%*1+1000*2.7%*1
三年,本息应该是:1000+1000*2.25%*1+1000*2.7%*1+1000*3.24%*1
第5年的话,应该像上面依次算。不知对不对,我也期待更好的答案。