輸入一個正整數n,輸出所有和為n的連續整數序列

來源:互聯網
上載者:User

思路:

用兩個變數記錄一段區間,begin,end,sum表示該區間中所有資料的和[begin,end),如何sum==n,那麼就列印該區間,然後sum-=low,low++,如何sum<n,那麼sum+=end,end++,如果sum>n,那麼sum-=low,low++.

參考代碼如下:

 

public void printSeq(int begin,int end){for(int i=begin;i<end;i++){System.out.print(i+" ");}System.out.println();}public void findSeq(int num){if(num<3)return;int sum=1;int begin=1;int end=2;int mid=num/2;while(begin<=mid){if(sum==num){printSeq(begin, end);sum-=begin;begin++;}if(sum<num){sum+=end;end++;}else if(sum>num){sum-=begin;begin++;}}}public static void main(String[] args){FindSumSequence find=new FindSumSequence();find.findSeq(15);}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.