前言
这道题我不太会写,看了题解觉得这个思路很巧,就想记下来。先放题目链接:
P2089 烤鸡
别人的代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int n,a,b,c,d,e,f,g,h,i,j,x=0;
scanf("%d",&n);
if(n>30){
printf("%d",0);
}else if(n<10){
printf("%d",0);
}else{
for(a=1;a<=3;a++)
for(b=1;b<=3;b++)
for(c=1;c<=3;c++)
for(d=1;d<=3;d++)
for(e=1;e<=3;e++)
for(f=1;f<=3;f++)
for(g=1;g<=3;g++)
for(h=1;h<=3;h++)
for(i=1;i<=3;i++)
for(j=1;j<=3;j++){
if(a+b+c+d+e+f+g+h+i+j==n)
x++;
}
printf("%d\n",x);
for(a=1;a<=3;a++)
for(b=1;b<=3;b++)
for(c=1;c<=3;c++)
for(d=1;d<=3;d++)
for(e=1;e<=3;e++)
for(f=1;f<=3;f++)
for(g=1;g<=3;g++)
for(h=1;h<=3;h++)
for(i=1;i<=3;i++)
for(j=1;j<=3;j++){
if(a+b+c+d+e+f+g+h+i+j==n)
printf("%d %d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i,j);
}
}
return 0;
}