我們放寬一下問題的解,解中包含這個給定的正整數。
為了更好的研究該問題。我們引入以下定義。
定義:對於乙個給定正整數n該問題的乙個解可以表述為a=(a,length),其中a為該連續整數的最小整數,length為該連續整數的長度。
由於a為該問題的乙個解,則可知:
f(a)=(a+(a+1)+(a+2)+...+(a+length-1))=n。
仔細考慮之後,我們可以得出以下兩個結論。
1 若a和b是該問題的兩個不同的解,則a和b中的連續整數的個數必不同。
證明:設給定的正整數為n,設a和b是兩個不同的解並且有相同的長度r,設a=(a,r),b=(b,r)。因為a和b都是解,所以有f(a)=f(b)。因為a和b是不同的解,有a!=b,有f(a)!=f(b)。
矛盾,命題成立。
2 若給定乙個正整數n,設a=(a,r)是該問題的乙個解,則(1+r)*r=<2*n。
證明:因為a=(a,r)是乙個解,n=f(a)>=f(1,r)=r*(1+r)/2,所以,
2*n>=(1+r)*r。
深入連續整數固定和之一 問題介紹及經典解法
[url]
深入連續整數固定和之三 新的演算法
[url]
深入連續整數固定和之一 問題介紹及經典解法
在冼鏡光的 c語言名題精選百則 中,問題2.16為連續整數固定和問題。問題描述 編寫乙個程式,讀入乙個正整數,把所有連續的,和為給定的正整數的正整數找出來。解中不包含該給定的正整數本身。書中給出的givensum1的code如下 private static void givensum1 int g...
Problem B 輸出連續的整數序列 之二
實驗5 problem b 輸出連續的整數序列 之二 description 輸出若干個連續的整數序列。input 輸入有多行。第一行是n 0,表示後面有n行輸入。之後每行輸入包含2個資料p和q,兩者之間用空格隔開,且均在int型別的表示範圍內。output 輸出n個連續的整數序列,序列兩兩之間用乙...
「連續整數的和」問題 51nod 1138題
問題描述 給出乙個正整數n,將n寫為若干個連續數字和的形式 長度 2 例如n 15,可以寫為1 2 3 4 5,也可以寫為4 5 6,或7 8。如果不能寫為若干個連續整數的和,則輸出no solution。輸入輸入1個數n 3 n 10 9 輸出輸出連續整數中的第1個數,如果有多個按照遞增序排列,如...