一个数拆分成连续自然数的和(只考加法的面试题)

题目:给定一个自然数,如何将它拆分成几个连续的自然数的和的形式,例如:9 = 4 + 5,12 = 3 + 4 + 5等,有哪些数不能分解成这样的形式,例如4,8等

分析:通过上面的几个例子可以发现一下规律:

1)所有的奇数n都可以分解成(n/2) + (n/2 +1)

2)偶数有点麻烦,先对部分例子进行计算,比如6 = 1 + 2 + 3,10 = 1 + 2 + 3 + 4, 12 = 3 + 4 + 5,  30 = 9 + 10 + 11 = 4 + 5 + 6 + 7 + 8,我们发现如果n能够被一个奇数整除,例如12/3 = 4,12可以被3整除,那么构造方案就可以以商为中心向两边扩展,每次过看都增加2个数,而这两个数的和/2刚好为商,这样就可以有奇数个商相乘,刚好等于被除数,这是一种构建方法。但这种方法有时会有问题,比如10,它可以被奇数5整除,但按照上面的构建策略会有问题,经过分析发现,上面构造的方法,结果一定是奇数个数相加,而10的构建是偶数个数相加。对于这类数,我们如何处理呢?经过举例归纳我们发现,如果一个数被2整除后商是奇数,那么可以这样来构建,因为两个这样的奇数加起来可以得到n,而奇数的构建可以通过(n/2) + (n/2 +1)来构建起来,那么我们知道数列((n/2) -1 ) 与(n/2+1) +1 的和等于(n/2) +

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值