• 0330复利计算4.0(改)


      1 import java.util.Scanner;
      2 
      3 public class text {
      4 
      5     public static void main(String[] args) {
      6         while (true) {
      7             Scanner scanner = new Scanner(System.in);
      8             System.out.println("----------------------------");
      9             System.out.println("    1.复利计算本息                          ");
     10             System.out.println("    2.单利计算本息                          ");
     11             System.out.println("    3.复利计算本金                          ");
     12             System.out.println("    4.单利计算本金                          ");
     13             System.out.println("    5.算投资年限      ");
     14             System.out.println("    6.算投资年利率      ");
     15             System.out.println("    7.每年定投收益                       ");
     16             System.out.println("    8.每月定投收益                       ");
     17             System.out.println("    9.每月等额本息还款          ");
     18             System.out.println("    0.退出                             ");
     19             System.out.println("----------------------------");
     20             System.out.print("请选择:");
     21             int number = scanner.nextInt();
     22             switch (number) {
     23             case 1:
     24                 BenxiFuli();
     25                 break;
     26             case 2:
     27                 BenxiDanli();
     28                 break;
     29             case 3:
     30                 BenjinFuli();
     31                 break;
     32             case 4:
     33                 BenjinDanli();
     34                 break;
     35             case 5:
     36                 TouziYear();
     37                 break;
     38             case 6:
     39                 TouziRate();
     40                 break;
     41             case 7:
     42                 YearDingtoushouyi();
     43                 break;
     44             case 8:
     45                 MonthDingtoushouyi();
     46                 break;
     47             case 9:
     48                 Dengerbenxihuanknan();
     49                 break;
     50             case 0:
     51                 Exit();
     52                 break;
     53             default: {
     54                 System.out.println("输入错误!请重新输入!");
     55                 break;
     56             }
     57             }
     58         }
     59 
     60     }
     61 
     62     private static void Exit() {
     63         // TODO 自动生成的方法存根
     64         System.out.println("谢谢使用!");
     65         System.exit(0);
     66 
     67     }
     68 
     69     private static void Dengerbenxihuanknan() {
     70         // TODO 自动生成的方法存根
     71         Scanner scanner = new Scanner(System.in);
     72         System.out.print("请输入贷款本金:");
     73         double money = scanner.nextDouble();
     74         System.out.print("请输入年利率:");
     75         double rate = scanner.nextDouble();
     76         System.out.print("请输入年限:");
     77         int year = scanner.nextInt();
     78         double num = 1;
     79         for (int i = 1; i <= year * 12; i++) {
     80             num = (1 + (rate / 12)) * num;
     81 
     82         }
     83         money = money * ((rate / 12) * num) / (num - 1);
     84         System.out.println("每月等额本息还款:"
     85                 + (double) (Math.round(money * 100) / 100.0));
     86 
     87     }
     88 
     89     private static void MonthDingtoushouyi() {
     90         // TODO 自动生成的方法存根
     91         Scanner scanner = new Scanner(System.in);
     92 
     93         System.out.print("请输入每月的定投金额:");
     94         double money = scanner.nextDouble();
     95         System.out.print("请输入年利率:");
     96         double rate = scanner.nextDouble();
     97         System.out.print("请输入年限:");
     98         int year = scanner.nextInt();
     99         double num = 1;
    100         for (int i = 1; i <= year * 12; i++) {
    101             num = (1 + (rate / 12)) * num;
    102 
    103         }
    104         money = money * (1 + (rate / 12)) * (-1 + num) / (rate / 12);
    105         System.out.println("定投" + year + "年后的资产总值为:"
    106                 + (double) (Math.round(money * 100) / 100.0));
    107 
    108     }
    109 
    110     private static void YearDingtoushouyi() {
    111         // TODO 自动生成的方法存根
    112         Scanner scanner = new Scanner(System.in);
    113 
    114         System.out.print("请输入每年的投资金额:");
    115         double money = scanner.nextDouble();
    116         System.out.print("请输入年利率:");
    117         double rate = scanner.nextDouble();
    118         System.out.print("请输入年限:");
    119         int year = scanner.nextInt();
    120         double num = 1;
    121         for (int i = 1; i <= year; i++) {
    122             num = (1 + rate) * num;
    123 
    124         }
    125         money = money * (1 + rate) * (-1 + num) / rate;
    126         System.out.println("定投" + year + "年后的资产总值为:"
    127                 + (double) (Math.round(money * 100) / 100.0));
    128 
    129     }
    130 
    131     private static void TouziRate() {
    132         // TODO 自动生成的方法存根
    133         Scanner scanner = new Scanner(System.in);
    134         System.out.print("请输入投资金额:");
    135         double money1 = scanner.nextDouble();
    136         System.out.print("请输入收获金额:");
    137         double money2 = scanner.nextDouble();
    138 
    139         System.out.print("请输入年限:");
    140         int year = scanner.nextInt();
    141         double rate;
    142         rate = Math.pow(money2 / money1, 1.0 / year) - 1;
    143         System.out.println("所需年利率为:"
    144                 + (double) (Math.round(rate * 10000) / 10000.0));
    145 
    146     }
    147 
    148     private static void TouziYear() {
    149         // TODO 自动生成的方法存根
    150         Scanner scanner = new Scanner(System.in);
    151         System.out.print("请输入投资金额:");
    152         double money1 = scanner.nextDouble();
    153         System.out.print("请输入收获金额:");
    154         double money2 = scanner.nextDouble();
    155 
    156         System.out.print("请输入年利率:");
    157         double rate = scanner.nextDouble();
    158         double year;
    159         year = Logarithm.log(money2 / money1, 1 + rate);
    160         year = Math.ceil(year);
    161         System.out.println("需要存入的年限为:" + year);
    162 
    163     }
    164 
    165     private static void BenjinDanli() {
    166         // TODO 自动生成的方法存根
    167         Scanner scanner = new Scanner(System.in);
    168         System.out.print("请输入本息:");
    169         double money = scanner.nextDouble();
    170         System.out.print("请输入年利率:");
    171         double rate = scanner.nextDouble();
    172         System.out.print("请输入年限:");
    173         int year = scanner.nextInt();
    174         money = money * (1 / (1 + rate * year));
    175         System.out.println("单利计算需要存入的本金为:"
    176                 + (double) (Math.round(money * 100) / 100.0));
    177 
    178     }
    179 
    180     private static void BenjinFuli() {
    181         // TODO 自动生成的方法存根
    182         Scanner scanner = new Scanner(System.in);
    183         System.out.print("请输入本息:");
    184         double money = scanner.nextDouble();
    185         System.out.print("请输入年利率:");
    186         double rate = scanner.nextDouble();
    187         System.out.print("请输入年限:");
    188         int year = scanner.nextInt();
    189         double num = 1;
    190         for (int i = 1; i <= year; i++) {
    191             num = num * (1 + rate);
    192         }
    193         money = money * (1 / num);
    194         System.out.println("复利计算需要存入的本金为:"
    195                 + (double) (Math.round(money * 100) / 100.0));
    196 
    197     }
    198 
    199     private static void BenxiDanli() {
    200         // TODO 自动生成的方法存根
    201         Scanner scanner = new Scanner(System.in);
    202         System.out.print("请输入本金:");
    203         double money = scanner.nextDouble();
    204         System.out.print("请输入年利率:");
    205         double rate = scanner.nextDouble();
    206         System.out.print("请输入年限:");
    207         int year = scanner.nextInt();
    208         money = money + money * rate * year;
    209         System.out.println("存入" + year + "年后的单利计算本息为:"
    210                 + (double) (Math.round(money * 100) / 100.0));
    211 
    212     }
    213 
    214     private static void BenxiFuli() {
    215         // TODO 自动生成的方法存根
    216         Scanner scanner = new Scanner(System.in);
    217         System.out.print("请输入本金:");
    218         double money = scanner.nextDouble();
    219         System.out.print("请输入年利率:");
    220         double rate = scanner.nextDouble();
    221         System.out.print("请输入年限:");
    222         int year = scanner.nextInt();
    223         for (int i = 1; i <= year; i++) {
    224             money = (1 + rate) * money;
    225         }
    226         System.out.println("存入" + year + "年后的复利计算本息为:"
    227                 + (double) (Math.round(money * 100) / 100.0));
    228 
    229     }
    230 }
  • 相关阅读:
    Python列表和元组知识点
    Python 字符串操作常用知识点
    ng-alain的sf如何自定义部件
    Spring-手写Spring注解版本事务,Spring事物的七大传播行为
    Spring-SpringAOP原理,手写Spring事务框架
    JVM性能优化--类加载器,手动实现类的热加载
    JVM性能优化--字节码技术
    JVM性能优化--JVM参数配置,使用JMeter简单测试配合说明参数调优
    JVM性能优化--Java的垃圾回收机制
    设计模式之原型模式、策略模式、观察者模式
  • 原文地址:https://www.cnblogs.com/xjy-gg/p/5339347.html
Copyright © 2020-2023  润新知