巧用公式妙解存款,发家致富不再难–计算力扣银行的钱|Java 刷题打卡

本文正在参加「Java主题月 – Java 刷题打卡」,详情查看 活动链接


一、题目描述

计算力扣银行的钱

Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。

最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。

给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。

  • 每天一道LeetCode题目,开开心心过日子~

二、思路分析

  • 老规矩,按照做题方法来,先读懂题意,理解示例,找到解题思路,最后再撸成代码~

  • 示例一:

    • 输入:n = 4
      输出:10
      解释:第 4 天后,总额为 1 + 2 + 3 + 4 = 10复制代码
  • 示例二:

    • 输入:n = 10
      输出:37
      解释:第 10 天后,总额为 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4) = 37 。
          注意到第二个星期一,Hercy 存入 2 块钱。
      复制代码
  • 示例三:

    • 输入:n = 20
      输出:96
      解释:第 20 天后,总额为 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4 + 5 + 6 + 7 + 8) + (3 + 4 + 5 + 6 + 7 + 8) = 96复制代码
  • 由上面的示例来看,很明显可以看出来这玩意其实就是多个等差数列计算和而已!

  • 等差数列:先搞懂等差数列是个啥?

    • 等差数列是常见的一种,如果一个数列从第二项起,每一项与它的前一项的差等于同一个常数,这个数列就叫做等差数列,而这个常数叫做等差数列的公差,公差常用字母d表示。

    • 高中数学公式:

      • 通项公式推导:
        a2-a1=d;a3-a2=d;a4-a3=d……an-a(n-1)=d,将上述式子左右分别相加,得出an-a1=(n-1)*d→an=a1+(n-1)*d。
        前n项和公式为:Sn=a1*n+[n*(n-1)*d]/2
        Sn=[n*(a1+an)]/2
        Sn=d/2*n²+(a1-d/2)*n
        注:以上n均属于正整数。  
        复制代码
      • 等差数列.jpg

      • an=a1+(n1)×dSn=na1+n(n1)2d,nN\begin{array}{l} a_{n}=a_{1}+(n-1) \times d \\ S_{n}=n a_{1}+\frac{n(n-1)}{2} d, n \in N^{*} \end{array}

        © 版权声明
        THE END
喜欢就支持一下吧
点赞0 分享