利用数学思维解决问题 虽然直接三层for循环也可解决问题,但效率太低,因为里面有很多答案是不符合实际情况的。找到他们之间的绝对数学关系即可快速拿到准确的答案。
#include <iostream> /* 鸡翁a只(0≤a≤20) 鸡母b只(0≤b≤33) 鸡雏(100-a-b)只 由5a+3b+(100-a-b)/3=100 得到关系式b=25-7a/4,也就是说鸡翁数量是4的倍数,最少0只 做多20只 设一个变量num(0≤num≤3,≤3是要保证鸡母数不为负) 则鸡翁4num只,鸡母为25-7num只,鸡雏为75+3num只 */ int main() { for(int num=0;num<=3;num++) // 只需要执行num=0 1 2 3时的4次for循环 std::cout<<4*num<<" "<<25-7*num<<" "<<75+3*num<<std::endl; }