LeetCode每日一题(829. Consecutive Numbers Sum)

给定一个整数n,返回将其写为连续正整数之和的方式数。例如,当n=5时,有2种方式:5=2+3;当n=9时,有3种方式:9=4+5,9=2+3+4。对于每个数x,可以有2到x个连续数的组合,需要找到所有可能的n值,使得n有整数解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given an integer n, return the number of ways you can write n as the sum of consecutive positive integers.

Example 1:

Input: n = 5
Output: 2

Explanation: 5 = 2 + 3

Example 2:

Input: n = 9
Output: 3

Explanation: 9 = 4 + 5 = 2 + 3 + 4

Example 3:

Input: n = 15
Output: 4

Explanation: 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5

Constraints:

  • 1 <= n <= 109

对于任何一个数 x 进行拆解:

2 个连续数: x = n + (n + 1) = 2n + 1
3 个连续数: x = n + (n + 1) + (n + 2) = 3n + 3
4 个连续数: x = n + (n + 1) + (n + 2) + (n + 3) = 4n + 6
5 个连续数: x = n + (n + 1) + (n + 2) + (n + 3) + (n + 4)= 5n + 10

只要其中的 n 有整数解就可以, 当 n<1 的时候,就没必要再继续检测了


impl Solution 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值