Java連續(xù)正整數(shù)序列和指的是一個(gè)正整數(shù)序列中,相鄰的兩個(gè)數(shù)之和相等。比如1 2 3 4、 2 3 4 5、 4 5 6、 10 11 12等等。如何用Java代碼求出這些序列中,數(shù)值之和相同的連續(xù)正整數(shù)序列呢?下面的代碼可以幫助你實(shí)現(xiàn)這個(gè)功能。
public static void sumOfSequence(int sum) { int small = 1; int big = 2; int middle = (1 + sum) / 2; int curSum = small + big; while (small< middle) { if (curSum == sum) { printSequence(small, big); } while (curSum >sum && small< middle) { curSum -= small; small++; if (curSum == sum) { printSequence(small, big); } } big++; curSum += big; } }
上面的代碼中,sum是要求的數(shù)值之和。我們可以通過調(diào)用sumOfSequence方法來得到數(shù)值之和為sum的連續(xù)正整數(shù)序列。
在方法內(nèi)部,我們先初始化small為1,big為2,curSum為small加big的和。然后在循環(huán)中,如果curSum等于sum,那么我們調(diào)用printSequence方法輸出這個(gè)序列。如果curSum大于sum,那么我們就將small加1,并且從curSum中減去small,進(jìn)入下一個(gè)循環(huán)。如果curSum小于sum,那么我們就將big加1,并且將big加入到curSum中。
public static void printSequence(int small, int big) { for (int i = small; i<= big; i++) { System.out.print(i + " "); } System.out.println(); }
上面的代碼是用來輸出一個(gè)連續(xù)正整數(shù)序列的。我們可以通過調(diào)用printSequence方法來輸出得到的連續(xù)正整數(shù)序列。
通過以上的代碼實(shí)現(xiàn),我們可以快速找出連續(xù)的正整數(shù)序列來滿足指定的數(shù)值之和。這在某些場合下是非常有用的。