c++11 - 如何确定 X 是否可以表示为任何 Y 不同正整数的总和?
问题描述
例如,如果
X= 10 , Y= 3
2,3,5 和 1,4,6 是可能的
但是对于 Y=10,这是不可能的,因为我们知道我们不能将 10 表示为 10 个不同的正整数的总和。有没有更具体的方法来获得结果?
解决方案
任何X
大于或等于S = 1 + 2 + ... + Y = Y*(Y+1)/2
都可以这样表示。的确,
X = 1 + 2 + ... + (Y-1) + (Y + X - S)
任何X
小于S
显然不能。
推荐阅读
- java - 初始化 LocationCallback 时出现 UnsupportedOperationException
- android - 如何删除android studio上的动态按钮
- pandas - 来自字符串的 Pandas 数据帧日期时间时间戳
- java - 在启动画面中接收 URL 意图并在 WebView 中加载 URL
- swift - 当 xcode 为 iOS 模拟器构建时,你可以忽略文件或类吗
- css - 使用什么技术将 css 内容变成图标?
- c# - HttpClient HTTP/2 从 Azure Function 调用 APN
- python - Django-Import-Export 导入 CSV,如何处理 u'\\ufeff、UTF-8 BOM 问题?
- excel - 隐藏表格行*除非* 3 列(在该行中)中的任何一个不为空
- javascript - 将 CodeMirror 实施到 Widget 后端表单中而不更新 texarea