Korean, Edit

C语言求连续自然数

更高类别【C语言】【C语言索引】(https://jb243.github.io/pages/802)


a. GitHub



问. 通过将至少两个连续的自然数相加,找出得出给定数字的方法数。例如,

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

共有四种方法。



引理。

设N为给定数,N=a×b,a=2k形式,2不能整除b。那么,问题中所要求的路数就等于b的约数数。



证明。

考虑将 n 与 k 个自然数相加。


绘图</中心>

绘图</中心>

在这种情况下,可以看出k是2N的约数。

对于 2N 的任意约数 k,定义 n,并且以下条件是必要且充分的。


绘图

由于 2n + k - 1 和 k 具有不同的奇偶性,如果一侧是 2N 的奇数约数,则另一侧是偶数约数。 (第二个条件)

首先,我们忽略条件 2n + k - 1 > k 来思考一下。

2n + k - 1 可以是偶数,k 可以是奇数,或者 2n + k - 1 可以是奇数,k 可以是偶数。

(注意 2N 是偶数。)

在每种情况下,都可以轻松确认路数等于 b 的约数数。

但是,由于 2n + k - 1 和 k 具有不同的奇偶性,因此它们不能相等。

另外,由于2n+k-1和k是对称的,因此2n+k-1>k和k>2n+k-1的情况的数量是相同的。

因此,考虑 2n + k - 1 > k,我们有以下结果:


绘图

受保护_0



输入:2016.02.17 23:50

results matching ""

    No results matching ""