Cien yuanes y cien pollos // variables estructurales

Descripción del tema
Cien dólares y cien gallinas. Cada gallina cuesta 3 yuanes, cada gallo 4 yuanes y cada pollito 0,5 yuanes Si gastas 100 yuanes para comprar 100 pollos, ¿cuáles son las posibilidades? Intente programar para generar todas las combinaciones. [Nota: El número de cada tipo de pollo puede ser cero]
Entrada
sin
salida
Salida plan de compra
Cada salida del plan ocupa una línea, y cada línea sale en el orden de gallina, gallo y pollito,
y luego la línea sale según al número de gallinas de pequeña producción de pedidos grandes.
Por ejemplo:
x1 x2 x3
y1 y2 y3
z1 z2 z3
donde x1 <y1 <z1

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define ll long long
#define N 150
using namespace std;
typedef struct  //按照母鸡数量由小到大的次序输出,遇到这种适合用结构体变量接着sort排序,这题并不是很典型,ABC+DEF=GHI那题很典型
{
    
    
    int x,y,z;
}Node;
Node s[N];//注意开数组最后排序
int num=0;
bool cmp(Node a,Node b)//存在s数组中的元素就是Node类型,这样写即可
{
    
    
    return a.x<b.x;
}
void Find()
{
    
    
    int num1,num2,num3;
    for(num1=0;3*num1<=100;num1++)
        for(num2=0;4*num2<=100;num2++)
           for(num3=0;num3/2.0+num1*3+num2*4<=100;num3++)
              if(num1+num2+num3==100&&num1*3+num2*4+num3/2.0==100)
              {
    
    
                  s[num].x=num1;
                  s[num].y=num2;
                  s[num].z=num3;
                  num++;
              }
}
int main()
{
    
    
    Find();
    sort(s,s+num,cmp);//快速排序
    for(int i=0;i<num;i++)
        cout<<s[i].x<<" "<<s[i].y<<" "<<s[i].z<<endl;
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/m0_52380556/article/details/115261279
Recomendado
Clasificación