题目背景 Background
猪猪hanke得到了一只鸡
题目描述 Description
猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末、孜然等),每种配料可以放1—3克,任意烤鸡的美味程度为所有配料质量之和
现在,Hanke想要知道,如果给你一个美味程度,请输出这10种配料的所有搭配方案
输入输出格式 Input/output
输入格式:
一行,n<=20
输出格式:
第一行,方案总数
第二行至结束,10个数,表示每种配料所放的质量
输入输出样例 Sample input/output
样例测试点#1
输入样例:
11
输出样例:
10
1 1 1 1 1 1 1 1 1 2
1 1 1 1 1 1 1 1 2 1
1 1 1 1 1 1 1 2 1 1
1 1 1 1 1 1 2 1 1 1
1 1 1 1 1 2 1 1 1 1
1 1 1 1 2 1 1 1 1 1
1 1 1 2 1 1 1 1 1 1
1 1 2 1 1 1 1 1 1 1
1 2 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1
说明 description
枚举
思路:既然说明里面给的提示已经很明确了,那就直接枚举吧。我算了一下,如果n=20的话,会有1000多种解(PS:我去啊,这尼玛的也太坑爹了吧?!),辛亏这题数据不大,直接循环即可
代码如下:
1 #include<stdio.h> 2 int main() 3 { 4 int a,b,c,d,e,f,g,h,i,j,n,m=0; 5 scanf("%d",&n); 6 for(a=1;a<=3;a++) 7 for(b=1;b<=3;b++) 8 for(c=1;c<=3;c++) 9 for(d=1;d<=3;d++) 10 for(e=1;e<=3;e++) 11 for(f=1;f<=3;f++) 12 for(g=1;g<=3;g++) 13 for(h=1;h<=3;h++) 14 for(i=1;i<=3;i++) 15 for(j=1;j<=3;j++) 16 { 17 if(a+b+c+d+e+f+g+h+i+j==n) 18 m++; 19 } 20 printf("%d\n",m); 21 for(a=1;a<=3;a++) 22 for(b=1;b<=3;b++) 23 for(c=1;c<=3;c++) 24 for(d=1;d<=3;d++) 25 for(e=1;e<=3;e++) 26 for(f=1;f<=3;f++) 27 for(g=1;g<=3;g++) 28 for(h=1;h<=3;h++) 29 for(i=1;i<=3;i++) 30 for(j=1;j<=3;j++) 31 { 32 if(a+b+c+d+e+f+g+h+i+j==n) 33 { 34 printf("%d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,i,j); 35 } 36 } 37 }
时间: 2024-10-09 13:19:03