⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1258.cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 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 + -