公鸡每只5文钱,母鸡每只3文钱,3只小鸡1文钱。现在用100文钱买100只鸡,问你这100只鸡里公鸡、母鸡、小鸡各几只?
算法一:
/*
File name:百元买百鸡.cpp
Author:杨柳
Date:2018/3/5
IDE:DEV-c++
*/
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main()
{
int x=0,y,z;//x为公鸡,y为母鸡,z为小鸡
//因为x最大为20,y最大为33
while(x<=20){
y=0;
while(y<=33){
z=100-x-y;
if((5*x+3*y+z/3==100)&&(z%3==0))
cout<<"公鸡、母鸡、小鸡为 "<<x<<" "<<y<<" "<<z<<endl;
y++;
}
x++;
}
return 0;
}
算法二:
/*
File name:百元买百鸡1.cpp
Author:杨柳
Date:2018/3/5
IDE:DEV-c++
5x+9y+z=300化简得7x+4y=100 y=25-7/4*x 因为y为自然数。
所以x为4的倍数,x=4k.y=25-7k,z=75+3k(k=0,1,2,3)
*/
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main()
{
int x=0,y,z;//x为公鸡,y为母鸡,z为小鸡
for(int k=0;k<=3;k++){
x=4*k;
y=25-7*k;
z=75+3*k;
cout<<"公鸡、母鸡、小鸡为 "<<x<<" "<<y<<" "<<z<<endl;
}
return 0;
}