程式設計題:輸入兩個引數,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...