import java.text.DecimalFormat; import java.util.Scanner; public class Fulijisuan { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("欢迎使用复利计算器!"); /*复利计算公式:F=P*(1+r)^N * F:复利终值 * P:本金 * r:利率 * N:利率获取时间的整数倍 */ Scanner scanner=new Scanner(System.in); System.out.print("复利计算器:计算单利和复利请按1,计算本金请按2,股票请按3,报酬率请按4,资产总值请按5,每月等额本息还款请按6:"); int num=scanner.nextInt(); DecimalFormat df1 = new DecimalFormat("#.00"); if(num==1){ double F; System.out.print("请输入本金P:"); double P = scanner.nextDouble(); System.out.print("请输入存入年数N:"); int N = scanner.nextInt(); System.out.print("请输入利率r:"); double r = scanner.nextDouble(); F=P+P*N*r; System.out.println("单利终值为F:"+df1.format(F)); F=0; System.out.print("请输入复利次数:"); double m = scanner.nextDouble(); F=P*(Math.pow((1+r/m), N*m)); System.out.println("复利终值为F:"+df1.format(F)); } if(num==2){ double H=1,P; System.out.print("请输入复利终值F:"); double F = scanner.nextDouble(); System.out.print("请输入存入年数N:"); int N = scanner.nextInt(); System.out.print("请输入利率r:"); double r = scanner.nextDouble(); P=F/Math.pow(1+r, N); System.out.println("本金应为P:"+df1.format(P)); } if(num==3){ double N = 1; System.out.print("请输入本金P:"); double P= scanner.nextDouble(); System.out.print("请输入终值F:"); double F= scanner.nextDouble(); System.out.print("请输入报酬率r:"); double r = scanner.nextDouble(); N=(int)((Math.log(F)/Math.log(1+r))-(Math.log(P)/Math.log(1+r))); System.out.println("存入时间为N:"+N); } if(num==4){ double r= 1; System.out.print("请输入本金P:"); double P= scanner.nextDouble(); System.out.print("请输入终值F:"); double F= scanner.nextDouble(); System.out.print("请输入存入年数N:"); int N = scanner.nextInt(); r=Math.pow(F/P,1d/N); System.out.println("报酬率应为r:"+df1.format(r)); } if(num==5){ System.out.println("年投入请按51,月投入请按52:"); int number=scanner.nextInt(); if(number==51){ double F= 1; System.out.print("请输入年本金P:"); double P= scanner.nextDouble(); System.out.print("请输入利率r:"); Double r= scanner.nextDouble(); System.out.print("请输入存入年数N:"); int N = scanner.nextInt(); F=P*(Math.pow((1+r), N)-1)/r; System.out.println("按年投资的终值为F:"+df1.format(F)); } if(number==52){ System.out.print("请输入月本金P:"); double P= scanner.nextDouble(); System.out.print("请输入利率r:"); Double r= scanner.nextDouble(); System.out.print("请输入存入年数N:"); int N = scanner.nextInt(); double F=P*(Math.pow(1+r/12.0, N*12)-1)/(r/12); System.out.println("按月投资的终值为F:"+df1.format(F)); } } if(num==6){ double p1=1,F=1; System.out.print("请输入借款金额P:"); double P= scanner.nextDouble(); System.out.print("请输入年利率r:"); Double r= scanner.nextDouble(); System.out.print("请输入还款期限N:"); int N = scanner.nextInt(); for(int i=1;i<=N;i++){ F=P+(P*r)*N; } p1=F/12; System.out.println("每月等额本息还款为:"+df1.format(p1)); } } }