贪心策略: 要求最少的数,先尽可能找到拥有脚数最多的动物,依次递减。 要求最多的数,先尽可能找到拥有脚数最少的动物,依次递增。 因为本题鸡有4只脚,兔有2只脚,若为奇数,则一定无解。 #include<iostream> using namespace std; int calMin(int feet){ int min_res=0; min_res+=feet/4; feet=feet%4; min_res+=feet/2; return min_res; } int calMax(int feet){ int max_res=0; max_res+=feet/2; return max_res; } int main(){ int feet=0; int minnum=0,maxnum=0; while(cin>>feet){ if(feet%2!=0){//脚为奇数,一定不存在动物 minnum=maxnum=0; } else{ minnum=calMin(feet); maxnum=calMax(feet); } cout<<minnum<<" "<<maxnum<<endl; } }