輸入乙個正數 n,輸出所有和為 n 連續正數序列。

2021-06-09 14:44:36 字數 879 閱讀 9998

1、輸入乙個正數 n,輸出所有和為 n 連續正數序列

例如輸入 15,由於 1+2+3+4+5=4+5+6=7+8=15,所以輸出 3 個連續序列 1-5、4-6 和 7-8。

分析:我們用兩個數small和big分別表示序列的最小值和最大值。首先把small初始化為 1,big初始化為 2。如果從small到big的序列的和大於n的話,我們向右移動small,相當於從序列中去掉較小的數字。如果從small到big的序列的和小於n的話,我們向右移動big,相當於向序列中新增big的下乙個數字。一直到small等於(1+n)/2,因為序列至少要有兩個數字。

基於這個思路,我們可以寫出如下**:

#include "stdafx.h"

#include #include #include using namespace std;

//列印連續序列

void printsequence(int small,int big)

//sum2、輸入兩個整數 n 和 m,從數列1,2,3.......n 中 隨意取幾個數,使其和等於 m ,要求將其中所有的可能組合列出來.。

使用回溯演算法,**如下:

#include "stdafx.h"

#include "stdlib.h"

#include #include #define n 1000

int a[n]; //輔助陣列,用來儲存滿足條件的組合

int c=0, n=20, m=30;

void work(int sum, int cc)

//數列從1到n遍歷一遍

for(int i = cc; i <= n; ++i) }

}int main()

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

public class lzwcode 題目 輸入乙個正數n,輸出所有和為n連續正整數序列。例如輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以輸出3個連續序列1 5 4 6和7 8。思路 因為整數序列是有序的,可以設立兩個游標begin和end,通過判區間 begin,end 的...

輸入乙個整數N 輸出所有和為N的連續正數序列

輸入乙個整數n 輸出所有和為n的連續正數序列 當輸入乙個整數時,為了獲取它的連續整數序列時,一般我們是從比它小的數開始累加,就比如說輸入15,從1開始加到2,3,4,5這時相加數就為15,我們就可以不用加後面的,開始從2開始,以此類推的話,於是我們可以發現當我們從15的中間值左右8開始加9時,是直接...

輸入乙個正整數n,輸出n 的值。

輸入乙個正整數 n nn 輸出 n n n 的值。其中n 1 2 3 nn 1 2 3 cdots n n 1 2 3 n演算法描述 n n n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列 a aa 來表示乙個大整數 a aa a 0 a 0 a 0 表示 a a...