輸入兩個整數n和m,從數列1、2、3…….n中隨意取幾個數,使其和等於m,要求將其中所有的可能組合列出來。
answer:第一眼反應就是dfs,其中需要考慮的問題是去除重複的組合,其他沒什麼難度,簡單的dfs
#include
#include
#include
#include
#include
#include
using
namespace
std;
#define m 10000
int flag[m]; //標記已經使用的數
int num[m]; //存1~n
int m,n;
void show() //輸出
printf("\n");
}void dfs(int po)
if(m < 0)
return;
for(int i = po; i <= n; i++)
}}int main()
21 2023年中興面試題
程式設計求解 輸入兩個整數 n 和 m,從數列1,2,3.n 中 隨意取幾個數,使其和等於 m 要求將其中所有的可能組合列出來.分析 遞迴法 思路 1.首先判斷,如果n m,則n中大於m的數不可能參與組合,此時置n m 2.n m,n本身符合條件,輸出 3.n 給出 include int resu...
15 2010 年中興面試題
題目 程式設計求解 輸入兩個整數n 和m,從數列1,2,3.n 中隨意取幾個數,使其和等於m 要求將其中所有的可能組合列出來.分析 一開始的時候我沒看清楚是從數列1,2,3,n中取數,所以就想用揹包去求解此題,但是如果用揹包的話就要記錄路徑,有點麻煩,後來看清楚題意之後就發現比較水了,直接搜尋求解即...
2023年中興面試題 01揹包問題演算法
題目 程式設計求解 輸入兩個整數 n 和 m,從數列1,2,3.n 中 隨意取幾個數,使其和等於 m 要求將其中所有的可能組合列出來。程式 include include using namespace std void qiujie int sum,int n else int main int ...