• 0321复利计算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("    0.退出                             ");
     15             System.out.println("----------------------------");
     16             System.out.print("请选择:");
     17             int number = scanner.nextInt();
     18             switch (number) {
     19             case 1:
     20                 Benxi();
     21                 break;
     22             case 2:
     23                 Benjin();
     24                 break;
     25             case 3:
     26                 Touzi();
     27                 break;
     28             case 4:
     29                 Dingtoushouyi();
     30                 break;
     31             case 5:
     32                 Dengerbenxihuanknan();
     33                 break;
     34             case 0:
     35                 Exit();
     36                 break;
     37             default: {
     38                 System.out.println("输入错误!请重新输入!");
     39                 break;
     40             }
     41             }
     42         }
     43 
     44     }
     45 
     46     private static void Exit() {
     47         // TODO 自动生成的方法存根
     48         System.out.println("谢谢使用!");
     49         System.exit(0);
     50 
     51     }
     52 
     53     private static void Dengerbenxihuanknan() {
     54         // TODO 自动生成的方法存根
     55         Scanner scanner = new Scanner(System.in);
     56         System.out.print("请输入贷款本金:");
     57         double money = scanner.nextDouble();
     58         System.out.print("请输入年利率:");
     59         double rate = scanner.nextDouble();
     60         System.out.print("请输入年限:");
     61         int year = scanner.nextInt();
     62         double num = 1;
     63         for (int i = 1; i <= year * 12; i++) {
     64             num = (1 + (rate / 12)) * num;
     65 
     66         }
     67         money = money * ((rate / 12) * num) / (num - 1);
     68         System.out.println("每月等额本息还款:"
     69                 + (double) (Math.round(money * 100) / 100.0));
     70 
     71     }
     72 
     73     private static void Dingtoushouyi() {
     74         // TODO 自动生成的方法存根
     75         Scanner scanner = new Scanner(System.in);
     76 
     77         System.out.print("请选择(1为每年定投,2为每月定投):");
     78         int number2 = scanner.nextInt();
     79         if (number2 == 1) {
     80             System.out.print("请输入每年的投资金额:");
     81             double money = scanner.nextDouble();
     82             System.out.print("请输入年利率:");
     83             double rate = scanner.nextDouble();
     84             System.out.print("请输入年限:");
     85             int year = scanner.nextInt();
     86             double num = 1;
     87             for (int i = 1; i <= year; i++) {
     88                 num = (1 + rate) * num;
     89 
     90             }
     91             money = money * (1 + rate) * (-1 + num) / rate;
     92             System.out.println("定投" + year + "年后的资产总值为:"
     93                     + (double) (Math.round(money * 100) / 100.0));
     94         } else if (number2 == 2) {
     95             System.out.print("请输入每月的定投金额:");
     96             double money = scanner.nextDouble();
     97             System.out.print("请输入年利率:");
     98             double rate = scanner.nextDouble();
     99             System.out.print("请输入年限:");
    100             int year = scanner.nextInt();
    101             double num = 1;
    102             for (int i = 1; i <= year * 12; i++) {
    103                 num = (1 + (rate / 12)) * num;
    104 
    105             }
    106             money = money * (1 + (rate / 12)) * (-1 + num) / (rate / 12);
    107             System.out.println("定投" + year + "年后的资产总值为:"
    108                     + (double) (Math.round(money * 100) / 100.0));
    109 
    110         }
    111 
    112     }
    113 
    114     private static void Touzi() {
    115         // TODO 自动生成的方法存根
    116         Scanner scanner = new Scanner(System.in);
    117         System.out.print("请输入投资金额:");
    118         double money1 = scanner.nextDouble();
    119         System.out.print("请输入收获金额:");
    120         double money2 = scanner.nextDouble();
    121 
    122         System.out.print("请选择(1为算时间,2为算利率):");
    123         int number2 = scanner.nextInt();
    124 
    125         if (number2 == 1) {
    126             System.out.print("请输入年利率:");
    127             double rate = scanner.nextDouble();
    128             double year;
    129             year = Logarithm.log(money2 / money1, 1 + rate);
    130             year = Math.ceil(year);
    131             System.out.println("需要存入的年限为:" + year);
    132         } else if (number2 == 2) {
    133             System.out.print("请输入年限:");
    134             int year = scanner.nextInt();
    135             double rate;
    136             rate = Math.pow(money2 / money1, 1.0 / year) - 1;
    137             System.out.println("所需年利率为:"
    138                     + (double) (Math.round(rate * 10000) / 10000.0));
    139 
    140         }
    141 
    142     }
    143 
    144     private static void Benjin() {
    145         // TODO 自动生成的方法存根
    146         Scanner scanner = new Scanner(System.in);
    147         System.out.print("请输入本息:");
    148         double money = scanner.nextDouble();
    149         System.out.print("请输入年利率:");
    150         double rate = scanner.nextDouble();
    151         System.out.print("请输入年限:");
    152         int year = scanner.nextInt();
    153 
    154         System.out.print("请选择(1为复利计算,2为单利计算):");
    155         int number2 = scanner.nextInt();
    156 
    157         if (number2 == 1) {
    158             double num = 1;
    159             for (int i = 1; i <= year; i++) {
    160                 num = num * (1 + rate);
    161             }
    162             money = money * (1 / num);
    163             System.out.println("复利计算需要存入的本金为:"
    164                     + (double) (Math.round(money * 100) / 100.0));
    165         }
    166         if (number2 == 2) {
    167             money = money * (1 / (1 + rate * year));
    168             System.out.println("单利计算需要存入的本金为:"
    169                     + (double) (Math.round(money * 100) / 100.0));
    170 
    171         }
    172 
    173     }
    174 
    175     private static void Benxi() {
    176         // TODO 自动生成的方法存根
    177         Scanner scanner = new Scanner(System.in);
    178         System.out.print("请输入本金:");
    179         double money = scanner.nextDouble();
    180         System.out.print("请输入年利率:");
    181         double rate = scanner.nextDouble();
    182         System.out.print("请输入年限:");
    183         int year = scanner.nextInt();
    184 
    185         System.out.print("请选择(1为复利计算,2为单利计算):");
    186         int number2 = scanner.nextInt();
    187 
    188         if (number2 == 1) {
    189             for (int i = 1; i <= year; i++) {
    190                 money = (1 + rate) * money;
    191             }
    192             System.out.println("存入" + year + "年后的复利计算本息为:"
    193                     + (double) (Math.round(money * 100) / 100.0));
    194 
    195         }
    196         if (number2 == 2) {
    197             money = money + money * rate * year;
    198             System.out.println("存入" + year + "年后的单利计算本息为:"
    199                     + (double) (Math.round(money * 100) / 100.0));
    200 
    201         }
    202 
    203     }
    204 }
    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 }

  • 相关阅读:
    Git.GitHub浅析
    十招让你的Powerpoint脱胎换骨
    UML用例图
    matlab 矩阵变换
    matlab实现主成分分析 princomp函数
    搭建顶级域名下的个人博客网站
    文本溢出(单行、多行)
    CSS入门级常识
    总结一下各种居中(内联元素、块级元素、浮动元素、绝对定位元素)*(水平、垂直)
    块级元素和内联元素的宽高是如何确定的
  • 原文地址:https://www.cnblogs.com/xjy-gg/p/5303479.html
Copyright © 2020-2023  润新知