编程题:X星人的金币
2021/10/23 22:11:29
本文主要是介绍编程题: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{n\left ( n+1 \right ) \left ( 2n+1 \right)}{6}\)
所以\(a_{n} =n^{2} +1\)的前n项和:\(S_{n}=\frac{n\left ( n+1 \right ) \left ( 2n+1 \right)}{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)))
这篇关于编程题:X星人的金币的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现