Compra cien pollos con cien dólares (optimización gradual)

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:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44635198/article/details/108606351
Recomendado
Clasificación