#include <iostream> using namespace std; //100块,买100只鸡,大:3块1只,小:1块3只,中2块一只 int main() { for(int max=0;max<=100;++max) { for(int min=0;min<=100;++min) { if((100-max-min)>=0&&(100-max-min)%3==0&&(max*3+min*2+(100-max-min)/3)==100) { cout<<"大:"<<max<<",小: "<<min<<",中"<<(100-max-min)<<endl; } } } return 0; } 一开始会想枚举O(n3)的3重循环, 但是考虑一下优化, 一共100只,所以只需要枚举两种鸡的数量,第三种的数量就已知,复杂度降到O(n2)