现在的位置: 首页 > 综合 > 正文

搜素之任意数的拆分和

2018年04月29日 ⁄ 综合 ⁄ 共 352字 ⁄ 字号 评论关闭
# include<cstdio>
# include<iostream>

using namespace std;

int a[1001] = {1};
int n,t;
int ans = 0;

int print( int t )
{
    cout<<n<<"=";
    for ( int i = 1;i <= t-1;i++ )
        {
            cout<<a[i]<<"+";
        }
        cout<<a[t]<<endl;
    ans++;
}


int search( int s,int t )
{
    for ( int i = a[t-1];i <= s;i++ )
        {
            if ( i<n )
                {
                    a[t] = i;
                    s = s - i;
                    if ( s==0 )
                        print(t);
                    else
                        search(s,t+1);
                        s+=i;
                }
        }
}


int main(void)
{
    cin>>n;
    search(n,1);
    cout<<"ans="<<ans<<endl;

    return 0;
}

抱歉!评论已关闭.