【洛谷P2660烤鸡】

题目背景

猪猪hanke得到了一只鸡

题目描述

猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末、孜然等),每种配料可以放1—3克,任意烤鸡的美味程度为所有配料质量之和

现在,Hanke想要知道,如果给你一个美味程度,请输出这10种配料的所有搭配方案。

这道题本来应应用递归算法,但是由于本蒟蒻对递归的掌握不熟,加之本题的思维非常水,只需要暴力模拟,就能把题目解出;

下面是对本题的思维方法总结:

1:对于先输出后循环的题目,可以先用循环算出本题中的方案总数,再循环一遍输出搭配方案;

2:一定要看好本题的输出要求,每个配料质量之间有空格,不要漏掉!!!

程序如下:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
    int n,s,a,b,c,d,e,f,g,h,i,j;
    cin>>n;
    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) {
                        s++;}}}}}}}}}}}
    cout<<s<<endl;
    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) {cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<" "<<h<<" "<<i<<" "<<j<<" "<<endl;
                        s++;}}}}}}}}}}}
}//beautiful!!!

I can do all things
原文地址:https://www.cnblogs.com/juruohqk/p/10401682.html