zoukankan      html  css  js  c++  java
  • 编程题:X星人的金币

    X星人的金币

    时问限制:3000MS
    内存限制:589824KB
    题目描述:
    X是人在一艘海底沉船上发现了很多很多很多金币。可爱的X星人决定用这些金币来玩一个填格子的游戏。其规则如下:第1个格子放2枚金币,第2个格子放5枚金币,第3个格子放10枚金币,第4个格子放17枚金币,第5个格子放26枚金币,以此类准,现在X星人—共有N枚金币,按照上述规则,请问可以放满多少个格子?还剩多少枚金币?
    输入描述:
    单组输入。输入一个正整数N。表示金币的总数。(N<=10^9)
    输出描述:
    输出按照指定规则可以放满的格子数量以及剩余的金币数量,两者之间用一个英文空格隔开。

    样例输入

    20
    

    样例输出

    3 3
    

    题解:

    总结规律:
    数列: 2 5 10 17 26 ... (n^{2} +1)
    已知(a_{n} =n^{2})的前n项和:(S_{n}=frac{nleft ( n+1 ight ) left ( 2n+1 ight)}{6})
    所以(a_{n} =n^{2} +1)的前n项和:(S_{n}=frac{nleft ( n+1 ight ) left ( 2n+1 ight)}{6}+n)

    代码如下:

    N = int(input())
    i = 1
    sn = lambda n : (n*(n+1)*(2*n+1)/6) + n
    while sn(i) < N:
        i = i + 1
    print(i-1, int(N-sn(i-1)))
    
    heroes never die!
  • 相关阅读:
    封装了一个简单的筛选菜单控件
    安卓存储资源
    处理webp加所有的jpg到指定路径
    苹果内购
    JavaScript关于md5加密
    JavaScript关于sha1加密
    h5跳转
    python遍历文件(替换)
    python遍历文件
    安卓点击home键重启
  • 原文地址:https://www.cnblogs.com/daiSir/p/15449236.html
Copyright © 2011-2022 走看看