大家好,今天小编教大家如何用c++编写鸡兔同笼
首先,我们需要知道我们的思路
解鸡兔同笼的方法有三种:
1、一个一个的试;
2、假设法:假设全是兔,……;
3、方程法;
今天小编就带着大家用第一种方法解鸡兔同笼;
第一种方法:
#includeusing namespace std; int main(){ int a,b,ji,tu; bool h=0; //判断是否得到数目 cout<<"请输入头数";cin>>a; //头 cout<<"请输入腿数";cin>>b; //腿 for(int i=1;i<=a;i++){ //鸡 for(int j=1;j<=a;j++){ //兔 if(i+j!=a)continue; else{ if(i*2+j*4==b){ ji=i;tu=j; h=1; break; } } } if(h==1)break; } cout<<"鸡有"< 可是如果这么写,它很有可能时间超限。比如:头有100个,就要循环1万次;
可如何优化代码呢?
在刚才我们写的代码里,写了两个for循环,可不可以只写一个呢?
可以。
优化后:
#includeusing namespace std; int main(){ int a,b,ji,tu; bool h=0; //判断是否得到数目 cout<<"请输入头数";cin>>a; //头 cout<<"请输入腿数";cin>>b; //腿 for(int i=1;i<=a;i++){ //鸡 int j=a-i; //兔 if(i*2+j*4==b){ ji=i;tu=j; h=1; break; } if(h==1)break; } cout<<"鸡有"< 这样,我们就用第一种方法解鸡兔同笼;



