help
  • 板块P2089 烤鸡
  • 楼主hhwshh
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/10 12:39
  • 上次更新2024/1/10 18:17:10
查看原帖
help
1218327
hhwshh楼主2024/1/10 12:39
#include <stdio.h>
#include <stdlib.h>
int count=0, a[10], n, ans[20000][10];

void dfs(int step, int sum)//step代表尝试第几个调料,sum代表美味总和
{
    int i;
    if(step==11)
    {
        if(sum==n)
        {
            count++;
            for(i=1; i<=10; i++)
                ans[count][i]=a[i];
        }
        return;
    }
    if(sum<n)
    {
        for(i=1; i<=3; i++)
        {
            if(sum+i>n)
                break;
            a[step]=i;
            dfs(step+1, sum+i);
            a[step]=0;
        }
    }
    return;
}
int main()
{
    int i, j;
    scanf("%d", &n);
    dfs(1, 0);
    printf("%d\n", count);
    for(i=1; i<=count; i++)
    {
        for(j=1; j<=10; j++)
            printf("%d ", ans[i][j]);
        printf("\n");
    }
    return 0;
}

2024/1/10 12:39
加载中...