深度优先搜索,分两个参数,第一个参数表示第一个加数,第二个同理,
分别搜索参数1合法匹配的加数,若二者之和大于输入的n,那么退出
继续搜索参数1加1的情况,若参数1大于n那么不可能在有解,结束搜索
#include <bits/stdc++.h>
using namespace std;
int n;
void dfs(int k,int m)
{
if(k>n)return;
if(k+m<=n)
{
printf("%-2d+%2d = %-2d ",k,m,k+m);
dfs(k,m+1);
}
else
{
cout<<endl;
dfs(k+1,0);
}
}
int main()
{
cin>>n;
dfs(0,0);
}