笼子里有若干只鸡和兔子,鸡有两只脚,兔子有四只脚,没有例外情况下已知笼子里脚的数量,问笼子里至多有多少只动物?至少有多少只动物?
算法:鸡兔同笼问题Feets
输入:脚的数量n
输出:至多的动物数maxNum,至少的动物数minNum
1.如果n是奇数,则没有满足要求的解,maxNum=0,minNum=0;
2.如果n是偶数且能被4整除,则maxNum=n/2,minNum=n/4;
3.如果n是偶数但不能被4整除,则maxNum=n/2,minNum=(n-2)/4+1;
4.输出maxNum和minNum;
#include <iostream>
using namespace std;
void Feets(int n, int &maxNum, int &minNum);
int main( )
{
int n, maxNum, minNum;
cout<<"请输入脚的个数:";
cin>>n;
Feets(n, maxNum, minNum);
cout<<maxNum<<" "<<minNum<<endl;
return 0;
}
void Feets(int n, int &maxNum, int &minNum)
{
if (n % 2 != 0) {maxNum = 0; minNum = 0;}
else if (n % 4 == 0) {maxNum = n/2; minNum = n/4;}
else {maxNum = n/2; minNum = (n-2)/4 + 1;}
}