题意:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
方法一:
暴力模拟
思路:鸡翁,母鸡,鸡雏的数量范围从0-100,暴力模拟。三重循环,将满足百钱百鸡的答案输出。
#include <bits/stdc++.h> using namespace std; int main(){ for(int i=0;i<=100;i++){//i,j,k的范围从0-100,暴力模拟 for(int j=0;j<=100;j++){ for(int k=0;k<=100;k++){ if(i+j+k==100&&5*i+3*j+k*1.0/3==100){//满足百钱百鸡,即可输出 printf("%d %d %d\n",i,j,k); } } } } return 0; }
时间复杂度:空间复杂度:
方法二:
解方程优化
思路:根据题意:得到方程组
如下图所示,求解该方程组。最后遍历x,并输出满足百钱百鸡的结果。
#include <bits/stdc++.h> using namespace std; int main(){ for(int x=0;x<=14;x++){//解方程,计算x的范围是[0,14],枚举x if((100-7*x)%4==0){ int y=(100-7*x)/4;//求解y,z int z=100-x-y; printf("%d %d %d\n",x,y,z); } } return 0; }
时间复杂度:空间复杂度: