Descripción del título: Un pollo por 5 centavos, una gallina por 3 centavos y un pollo por 3 centavos. Use 100 centavos para comprar cien pollos. Entre ellos, un gallo, una gallina y un pollo deben tener uno. Pregúntele al gallo, Hens , pollos para comprar lo suficiente para hacer 100 yuanes.
Complejidad de tiempo optimizada de 100x100x100 a 10
El primero es programar directamente según las condiciones de la asignatura:
#include<bits/stdc++.h>
using namespace std;
int main() {
for(int cock = 1; cock <= 100; cock++) {
for(int hen = 1; hen <= 100; hen++){
for(int chick = 1; chick <= 100; chick++) {
if((cock+hen+chick==100)&&(cock*5+hen*3+chick/3==100)&&(chick%3==0)){
cout << "公鸡" << cock << "只,母鸡" << hen << "只,小鸡" << chick << "只" << endl;
}
}
}
}
return 0;
}
El segundo tipo ( reducción del alcance ): según los requisitos del título, gallo 5 <= 100, gallina 3 <= 100, pollito <= 100
es decir, gallo <= 20, gallina <= 33
#include<bits/stdc++.h>
using namespace std;
int main() {
for(int cock = 1; cock <= 20; cock++) {
for(int hen = 1; hen <= 33; hen++){
for(int chick = 1; chick <= 100; chick++) {
if((cock+hen+chick==100)&&(cock*5+hen*3+chick/3==100)&&(chick%3==0)){
cout << "公鸡" << cock << "只,母鸡" << hen << "只,小鸡" << chick << "只" << endl;
}
}
}
}
return 0;
}
El tercer tipo ( reducir el número de ciclos ): obtener gallo + gallina + pollito = 100 según los requisitos del título
#include<bits/stdc++.h>
using namespace std;
int main() {
for(int cock = 1; cock <= 20; cock++) {
for(int hen = 1; hen <= 33; hen++) {
int chick = 100 - cock - hen;
if((cock*5+hen*3+chick/3==100)&&(chick%3==0)){
cout << "公鸡" << cock << "只,母鸡" << hen << "只,小鸡" << chick << "只" << endl;
}
}
}
return 0;
}
El cuarto tipo ( continuar reduciendo el alcance ): De acuerdo con los requisitos del tema:
1. gallo + gallina + pollito = 100
2. gallo 5 + gallina 3 + pollito / 3 = 100
se puede obtener: gallo 7 + gallina 4 = 100, gallo <= 14, gallina <= 25
#include<bits/stdc++.h>
using namespace std;
int main() {
for(int cock = 1; cock <= 14; cock++) {
for(int hen = 1; hen <= 25; hen++) {
int chick = 100 - cock - hen;
if((cock*7+hen*4==100)&&(chick%3==0)){
cout << "公鸡" << cock << "只,母鸡" << hen << "只,小鸡" << chick << "只" << endl;
}
}
}
return 0;
}
El quinto tipo ( continuar reduciendo el ciclo ): Según la conclusión del cuarto tipo: gallo 7 + gallina 4 = 100
gallina = (100 gallos * 7) / 4
#include<bits/stdc++.h>
using namespace std;
int main() {
for(int cock = 1; cock <= 14; cock++) {
int hen = (100-cock*7)/4;
int chick = 100 - cock - hen;
if((100-cock*7)%4 == 0 && chick%3==0){
cout << "公鸡" << cock << "只,母鸡" << hen << "只,小鸡" << chick << "只" << endl;
}
}
return 0;
}
El sexto tipo ( continuar reduciendo el rango ): Según hen = (100-cock * 7) / 4, hen debe ser múltiplo de cuatro
#include<bits/stdc++.h>
using namespace std;
int main() {
for(int cock = 4; cock <= 14; cock+=4) {
int hen = (100-cock*7)/4;
int chick = 100 - cock - hen;
if((100-cock*7)%4 == 0 && chick%3==0){
cout << "公鸡" << cock << "只,母鸡" << hen << "只,小鸡" << chick << "只" << endl;
}
}
return 0;
}
Ejecutar captura de pantalla: