輸入兩個引數,N和M,用M個數字加起來等於N

2021-08-27 16:37:50 字數 635 閱讀 3687

程式設計題:輸入兩個引數,n和m,用m個數字加起來等於n.

我理解成了從m個數中,找出和為n的組合。

public class subset ;

int n = 3;

// getbinarysubset(5);

getgroupsumequaln(m, n);

}public static void getgroupsumequaln(int m, int n)

system.out.println(newm);

// take subset

int sum;

int len = newm.size();

for(int subset = 0, backsubset = 0; subset < (0x1 << len); subset = backsubset + 1)

if(sum == n) }}

static listgetbinarysubset(int n)

return list;

}}

輸入時:

[1, 2, 3]

11100

就是1+2,和3的組合。其中用的關鍵了全列舉所有組合。

n個數字取m個的組合數

對於這個問題有兩種版本,n個元素互不相同,n個元素有重複。有重複用集合之類的方法去重即可。因此我們解決簡單版本假設n個元素互不相同。emmm 其實應該是同一種方法,第一種回朔法用了系統的棧空間,第二種用了自己建立的棧空間。相比較而言第二種演算法的空間複雜度會低一些,因為借助系統的棧會儲存好多多餘的資...

輸入兩個正整數m和n,求其最大公約數和最小公倍數

題目 輸入兩個正整數 m和n,求其最大公約數和最小公倍數。程式分析 a 兩個數求最大公約數,可以用輾轉相除法。始終用較大數 被除數 除以較小數 除數 然後用除數代替較大數 被除數 餘數代替較小數 除數 代替完後繼續讓新的被除數除以除數。直到相除餘數為0時。最後的除數就是最大公約數。b 兩個數的最小公...

輸入兩個正整數m和n,求其最大公約數和最小公倍數。

輸入兩個正整數m和n,求其最大公約數和最小公倍數。說明1 最大公約數是指,兩個或多個整數共有約數中最大的乙個.例如 12和16的共有約數有 1,2,4.則最大公約數為4 說明2 最小公倍數是指,兩個或多個整數共有倍數中最小的乙個.例如 12和16的共有倍數有 48,96,則最小公倍數為48 scan...