1 标题:继续巩固之前学习的东西。
2 关键词:复习巩固
3 内容:
1 棋盘上的距离问题
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就是一步,其他就是到不了。
#include <iostream>
#include<math.h>
int main()
{
int m1,m2,n1,n2;
std::cout<<"请输入起点的坐标:"<<'\n';
std::cin>>m1>>n1;
std::cout<<"请输入目标点的坐标:"<<'\n';
std::cin>>m2>>n2;//m为横坐标,n为纵坐标。
int x,y;
x=abs(m1-m2);
y=abs(n1-n2);
if(x=0&&y=0)
std::cout<<"所有棋都走0不";
else if(x=y){
std::cout<<"王要走"<<x<<"步"<<'\n';
std::cout<<"后和象要走1步"<<'\n';
std::cout<<"车要走"<<2<<"步"<<'\n';
}
else if(x=0){
std::cout<<"王要走"<<y<<"步"<<'\n';
std::cout<<"后和车要走1步"<<'\n';
std::cout<<"象到不了"<<'\n';
}
else if(y=0){
std::cout<<"王要走"<<x<<"步"<<'\n';
std::cout<<"后和象和车要走1步"<<'\n';
std::cout<<"象到不了"<<'\n';
}
else if(x<y)
{
std::cout<<"王要走"<<y<<"步"<<'\n';
std::cout<<"后和车要走2步"<<'\n';
std::cout<<"象无法到达"<<'\n';
}
else if(x>y)
{
std::cout<<"王要走"<<x<<"步"<<'\n';
std::cout<<"后和车要走2步"<<'\n';
std::cout<<"象无法到达"<<'\n';
}
}
2 校门外的树
明天学。