#include<bits/stdc++.h> using namespace std; int n,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,ans; int main(){ scanf("%d",&n); if(n>30||n<10){ printf("0"); return 0; }//因为最大每种放三克,若大于3*10或小于1*10,即大于30或小于10均不满足 for(i1=1;i1<=3;i1++) for(i2=1;i2<=3;i2++) for(i3=1;i3<=3;i3++) for(i4=1;i4<=3;i4++) for(i5=1;i5<=3;i5++) for(i6=1;i6<=3;i6++) for(i7=1;i7<=3;i7++) for(i8=1;i8<=3;i8++) for(i9=1;i9<=3;i9++) for(i10=1;i10<=3;i10++) if(i1+i2+i3+i4+i5+i6+i7+i8+i9+i10==n) ans++;//枚举,3^10不会超时,若和满足,答案加一 printf("%d",ans); for(i1=1;i1<=3;i1++) for(i2=1;i2<=3;i2++) for(i3=1;i3<=3;i3++) for(i4=1;i4<=3;i4++) for(i5=1;i5<=3;i5++) for(i6=1;i6<=3;i6++) for(i7=1;i7<=3;i7++) for(i8=1;i8<=3;i8++) for(i9=1;i9<=3;i9++) for(i10=1;i10<=3;i10++)//继续枚举一次,输出答案,因为要输出总数和方案,上面先求总数,这里再输出方案 if(i1+i2+i3+i4+i5+i6+i7+i8+i9+i10==n) printf("\n%d %d %d %d %d %d %d %d %d %d",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10); return 0; }
题解 P2089 【烤鸡】
猜你喜欢
转载自www.cnblogs.com/SeashellBaylor/p/11079657.html
今日推荐
周排行