一个纸条进入,被切成很多个,其实纸条上写有一串的数字,被整数个地切割。其中满足的要求如下

1、被切出的数加起来的和要小于等于且最接近指定的一个数。

2、当没有满足这样的数时会报错。

3、当有多于一个的一样的数满足以上条件。

#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<queue>
#include<string.h>
#include<stack>
#include<math.h>

using namespace std;

char go[100];
int l;
int flag;
int n;
int num;
int mine;


void make(int total,int k)
{
    //cout<<total<<' '<<k<<endl;
    int i,j;
    if (total>n)
        return;
    if (k==l)
    {
        if (total>mine)
        {
            mine=total;
            flag=1;
        }
        else if (total==mine)
            flag++;
        return;
    }
    j=0;
    while (k<l)
    {
        j=j*10+go[k++]-48;
        make(j+total,k);
    }
}

int main()
{
    freopen("fuck.txt","r",stdin);
    int i,j,k;
    while (cin>>go>>n)
    {
        //cout<<go<<' '<<n<<endl;
        mine=0;
        flag=0;
        l=strlen(go);
        make(0,0);
        if (flag==0)
            cout<<"全都大于"<<n<<endl;
        else if (flag==1)
            cout<<"最接"<<n<<"的数是"<<mine<<endl;
        else
            cout<<"拒绝服务"<<mine<<endl;
    }
}