java - 如何获得所有加起来形成一个数字的连续数字集?
问题描述
我想创建一个程序来生成一组连续的数字,这些数字加起来形成一个数字。例如。如果输入数字是 15,它应该给出 -
7, 8
4, 5, 6
1, 2, 3, 4, 5
一些公式/算法/循环可以做一些适合的事情。它可以生成一个数组或打印它。这似乎是一个数学问题或愚蠢的问题,但我实际上无法弄清楚如何在 Java 中以编程方式做到这一点。
请尝试提供可以执行此操作的确切代码。
解决方案
假设您的输入是 N。您知道每组 k 个连续数字将以 N/k 为中心。如果 N/k 以 0.5 结尾,则存在偶数 k 的解,如果 N/k 是整数,则存在奇数 k 的解。解决方案(如果存在)是以 N/k 为中心的 k 个整数。
k=1: 15/1 = 15, so 15 (trivial; may want to omit)
k=2: 15/2 = 7.5, so 7,8
k=3: 15/3 = 5, so 4,5,6
k=4: 15/4 = 3.75, so no solution
k=5: 15/5 = 3, so 1,2,3,4,5
k=6: 15/6 = 2.5, so 0,1,2,3,4,5
etc...
k=15: 15/15 = 1, so -6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8
您可以轻松修改它以限制正解或非负解。
推荐阅读
- r - R:数值积分对于平滑函数返回错误的结果,但不会完全失败
- python - Selenium - 移动滑块时如何调整鼠标速度?
- javascript - TypeError:this.posts.filter 不是使用 Vue js 和 wordpress api 的函数
- sql - 如何从两个表中选择记录,COALESCE 表1中不存在的值
- ssl - 在 gRPC 服务前使用 Envoy 代理时出现 SSL 错误 ERR_CERT_AUTHORITY_INVALID
- ruby-on-rails - 错误配置用户 - 用户状态 - 暂停
- javascript - javascript(根据正弦函数滚动页面循环)
- ruby - 如何存根从构造函数调用的全局函数?
- javascript - 在父级中使用 Object.assign 设置子属性
- c# - 我正在尝试遍历从前端传入的数据