描述
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 (a < 32768)
1、直接暴力枚举,二重循环
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,minn,maxx;
cin>>a;
maxx=0,minn=32768;
for(int i=0;i<=a/2;i++)
for(int j=0;j<=a/4;j++)
if(i*2+j*4==a){
if(i+j>maxx)maxx=i+j;
if(i+j<minn)minn=i+j;
}
if(maxx==0&&minn==32768)printf("0 0");
else printf("%d %d",minn,maxx);
return 0;
}
2、其实用一重循环就可以解决
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,minn,maxx,tot,f;
cin>>a;
maxx=0,minn=32768,f=0;
for(int i=0;i<=a/4;i++){
if((a-i*4)%2==0){
f=1;
tot=i+(a-i*4)/2;
if(tot>maxx)maxx=tot;
if(tot<minn)minn=tot;
}
}
if(f==0)printf("0 0");
else printf("%d %d",minn,maxx);
return 0;
}