标题:思考鸡兔同笼,和棋盘上的距离问题。
关键词:鸡兔同笼,棋盘上的距离问题
内容:
1 鸡兔同笼问题:
已知鸡兔总数n,总脚数为m。编写一个程序,输入n和m,依次输出鸡和兔的数目。
首先可以设鸡的数目为x,兔的数目为y
可的方程式x+y=n 2x+4y=m,然后算出来的东西必须是整数,还必须大于等于0.
<pre name="code" class="cpp">#include<iostream>
int main()
{
int x,y,n,m;
std::cout<<"请输入鸡兔总数n,和总脚数m;"<<'\n';
std::cin<<n<<m;
if(m%2!=0)
std::cout<<"No answer"<<'\n';
else if(m>=4*n)
std::cout<<"No answer"<<'\n';
else if(m<=2*n)
std::cout<<"No answer"<<'\n';
else std::cout<<"鸡的个数为"<<x<<'\n';
std::cout<<"兔的个数为"<<y<<'\n';
}
2 棋盘上的距离问题
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
2 | |||||||
3 | |||||||
4 | |||||||
5 | |||||||
6 | |||||||
7 | |||||||
8 |
王:横,直,斜 都可以走,但是每次只能走一格
后:横,直,斜 都可以走,每步的格数不限
车:横竖都可以走,每步的格数不限
象:只能斜走,格数不限
我想的方法:首先设起点和目标点之间的水平距离为x,竖直距离为y
王 如果x=0或y=0那么步数为y和x;如果x=y步数为x;如果x不等于y,那么步数为,x,y中较小的加上较大的减去较小的。
后 如果x=y 或x=o或y=0那么只需一步,除此之外都是2步
车 如果x=0或y=0只需1步,其他都是2步,
象 如果x=y就是一步,其他就是到不了。
程序明天写,今天先写分析。