1 import java.util.Scanner; 2 3 public class text { 4 public static void main(String[] args) { 5 6 7 do { 8 Scanner scanner = new Scanner(System.in); 9 System.out.println(" "); 10 System.out.print("请选择(0为退出,1为算本息,2为算本金,3为算投资,4为算n年后资产总值):"); 11 int number1 = scanner.nextInt(); 12 13 if (number1 == 1) { 14 System.out.print("请输入本金:"); 15 double money = scanner.nextDouble(); 16 System.out.print("请输入年利率:"); 17 double rate = scanner.nextDouble(); 18 System.out.print("请输入年限:"); 19 int year = scanner.nextInt(); 20 21 System.out.print("请选择(1为复利计算,2为单利计算):"); 22 int number2 = scanner.nextInt(); 23 24 if (number2 == 1) { 25 for (int i = 1; i <= year; i++) { 26 money = (1 + rate) * money; 27 } 28 System.out.println("存入" + year + "年后的复利计算本息为:" +(double) (Math.round(money*100)/100.0)); 29 30 } 31 if (number2 == 2) { 32 money = money + money * rate * year; 33 System.out.println("存入" + year + "年后的单利计算本息为:" +(double) (Math.round(money*100)/100.0)); 34 } 35 36 37 38 } 39 40 if (number1 == 2) { 41 System.out.print("请输入本息:"); 42 double money = scanner.nextDouble(); 43 System.out.print("请输入年利率:"); 44 double rate = scanner.nextDouble(); 45 System.out.print("请输入年限:"); 46 int year = scanner.nextInt(); 47 48 System.out.print("请选择(1为复利计算,2为单利计算):"); 49 int number2 = scanner.nextInt(); 50 51 if (number2 == 1) { 52 double num = 1; 53 for (int i = 1; i <= year; i++) { 54 num = num * (1 + rate); 55 } 56 money = money * (1 / num); 57 System.out.println("复利计算需要存入的本金为:" +(double) (Math.round(money*100)/100.0)); 58 } 59 if (number2 == 2) { 60 money = money * (1 / (1 + rate * year)); 61 System.out.println("单利计算需要存入的本金为:" + (double) (Math.round(money*100)/100.0)); 62 } 63 64 } 65 if (number1 == 3) { 66 67 System.out.print("请输入投资金额:"); 68 double money1 = scanner.nextDouble(); 69 System.out.print("请输入收获金额:"); 70 double money2 = scanner.nextDouble(); 71 72 System.out.print("请选择(1为算时间,2为算利率):"); 73 int number2 = scanner.nextInt(); 74 75 if (number2 == 1) { 76 System.out.print("请输入年利率:"); 77 double rate = scanner.nextDouble(); 78 double year; 79 year = Logarithm.log(money2/money1,1+rate); 80 year = Math.ceil(year); 81 System.out.println("需要存入的年限为:" + year); 82 } else if (number2 == 2) { 83 System.out.print("请输入年限:"); 84 int year = scanner.nextInt(); 85 double rate; 86 rate = Math.pow(money2/money1, 1.0/year)-1; 87 System.out.println("所需年利率为:" + (double) (Math.round(rate*10000)/10000.0)); 88 } 89 } 90 91 if(number1 == 4){ 92 System.out.print("请输入每年的投资金额:"); 93 double money1 = scanner.nextDouble(); 94 System.out.print("请输入年利率:"); 95 double rate = scanner.nextDouble(); 96 System.out.print("请输入年限:"); 97 int year = scanner.nextInt();double money2=0; 98 for(int i=1;i<=year;i++){ 99 100 money1=money1+money2; 101 money2=money1*(1+rate); 102 103 } 104 System.out.println(year+"年后的资产总值为:" + (double) (Math.round(money2*100)/100.0)); 105 } 106 107 if (number1 == 0) { 108 System.out.println("谢谢使用!" ); 109 System.exit(0); 110 111 } 112 } while (true); 113 } 114 }
1 public class Logarithm { 2 static public double log(double value, double base){ 3 return Math.log(value)/Math.log(base); 4 5 } 6 7 }