📄 1258.cpp
字号:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int a[20],b[20];
int c[200][20];
int count1;
bool cmp(int a,int b){
return a>b;
}
void sumitup(int t,int n,int s,int step){
int i,j;
if(t==0){
for(i=1;i<step;i++)
c[count1][i]=b[i];
sort(c[count1],c[count1]+step,cmp);
for(i=0;i<count1;i++){
int s=0;
for(j=1;j<step;j++)
if(c[i][j]!=c[count1][j])
break;
if(j==step){
memset(c[count1],0,sizeof(c[count1]));
return;
}
}
for(i=1;i<step;i++)
if(i==1)
cout<<b[i];
else
cout<<"+"<<b[i];
cout<<endl;
count1++;
}
else
for(i=s;i<=n;i++){
b[step]=a[i];
int re=count1;
sumitup(t-b[step],n,i+1,step+1);
b[step]=0;
}
}
void main()
{
int t,n,i;
while(cin>>t>>n){
if(!t&&!n)
break;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
count1=0;
for(i=1;i<=n;i++)
cin>>a[i];
cout<<"Sums of "<<t<<":"<<endl;
sumitup(t,n,1,1);
if(count1==0)
cout<<"NONE\n";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -