求求了,总会多输出!
查看原帖
求求了,总会多输出!
1263923
封禁用户楼主2024/3/15 21:15

那个我基础不好,见谅!

#include<bits/stdc++.h>
using namespace std;
int n;
string b="0123456789";
bool sjb(string a)
{
	string mn[10];
    int x=0,l=a.size(),y=0,nm[10],j=0;
    for(int i=1;i<l;i+=2)
    {
    	if(a[i]==' ') a.erase(i,1);
	} 
	for(int i=0;i<=l;i++)
	{
		if(a[i]>48 && a[i]<58)
		{
			y=(y*10)+(a[i]-'0');
		}
		else
		{
			nm[j]=y;
			j++;
			y=0;
			mn[j]=a[i];
		}
	}
	x=nm[0];
	for(int i=1;i<=j;i++)
	{
		if(mn[i]=="+") x=x+nm[i];
		if(mn[i]=="-") x=x-nm[i];
	}
    if(x==0) 
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
void sb(int m,string a)
{
    if(m==n)
    {
        if(sjb(a)==1)
        {
            cout<<a<<endl;
        }
        return;
    }
	sb(m+1,a+" "+b[m+1]);
    sb(m+1,a+"+"+b[m+1]);
    sb(m+1,a+"-"+b[m+1]);
}
int main()
{
    cin>>n;
    sb(1,"1");
}
2024/3/15 21:15
加载中...