90分 #6WA求调
  • 板块P2089 烤鸡
  • 楼主zhouziyu_729
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/1/25 09:14
  • 上次更新2023/10/24 03:09:15
查看原帖
90分 #6WA求调
377739
zhouziyu_729楼主2023/1/25 09:14

代码:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int ans=0;
    int a[10];
    for(int i=9;i>=0;i--)
    {
        a[i]=1;
    }
    while(a[0]<4)
    {
        a[9]++;
        for(int i=9;i>0;i--)
        {
            if(a[i]>3)
            {
                a[i]=1;
                a[i-1]+=1;
            }
        }
        int sum=0;
        for(int i=0;i<10;i++)
        {
            sum+=a[i];
        }
        if(sum==n)
        {
            ans++;
        }
    }
    cout<<ans<<endl;
    for(int i=9;i>=0;i--)
    {
        a[i]=1;
    }
    while(a[0]<4)
    {
        a[9]++;
        for(int i=9;i>0;i--)
        {
            if(a[i]>3)
            {
                a[i]=1;
                a[i-1]+=1;
            }
        }
        int sum=0;
        for(int i=0;i<10;i++)
        {
            sum+=a[i];
        }
        if(sum==n)
        {
            for(int i=0;i<10;i++)
            {
                cout<<a[i]<<" ";
            }
            cout<<endl;
        }
    }
}

没存答案,写了两次递归

每次给数组最后一项加一,再扫一遍数组,一项到4就回到1,给前一位加1,判断数组总和等不等于n

只有#6WA,求调

2023/1/25 09:14
加载中...