热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

马拦过河卒题目分析c语言,马拦过河卒pascal(题目,分析,样例输入输出,源程序,感受).doc...

马拦过河卒pascal(题目,分析,样例输入输出,源程序,感受)马拦过河卒源程序名knight.???(pas,c,cpp)可执行文件名knight.exe输入文件名knight.

马拦过河卒pascal(题目,分析,样例输入输出,源程序,感受)

马拦过河卒

源程序名 knight.???(pas, c, cpp) 可执行文件名 knight.exe

输入文件名 knight.in 输出文件名 knight.out【问题描述】

棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。

棋盘用坐标表示,A点 0, 0 、B点 n, m n, m为不超过15的整数 ,同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

【输入】

一行四个数据,分别表示B点坐标和马的坐标。

【输出】

一个数据,表示所有的路径条数。

【样例】

knight.in knight.out

6 6 3 36

输入: (4 2 8 8) (4 3 9 8)

输出: 4 10

源程序:

program ghz;

var z:array[1..100,1..100]of boolean; p,q:array[1..100,1..100]of byte; xb,yb,xm,ym,s:integer; pest:boolean;

procedure falss;

begin

z[xm,ym]: false;

z[xm-1,ym-2]: false;

z[xm-2,ym-1]: false;

z[xm-2,ym+1]: false;

z[xm-1,ym+2]: false;

z[xm+1,ym-2]: false;

z[xm+2,ym-1]: false;

z[xm+1,ym+1]: false;

z[xm+1,ym+2]: false;

end;

procedure writee x,y:integer ;

var u:byte;

begin if x 1 and y 1 then begin writeln ' 1,1 ' ; writeln; end else begin write ' ',x,',',y,' -- ' ; writee p[x,y],q[x,y] ; end;

end;

procedure print;

var i,j:integer;

begin pest: false; s: s+1; writee xb,yb ;

end;

procedure try x,y:integer ;

var i,j,w:integer;

begin if x xb or y yb then i: 1 else if x xb and y yb then print else for i: 1 to 2 do begin if i 1 and z[x+1,y] true then begin p[x+1,y]: x; q[x+1,y]: y; try x+1,y ; end; if i 2 and z[x,y+1] true then begin p[x,y+1]: x; q[x,y+1]: y; try x,y+1 ; end; end;

end;

begin

assign input,'word.in' ;

assign output,'word.out' ;

reset input ;

rewrite output ;

readln xb,yb,xm,ym ;

fillchar z,sizeof z ,true ;

falss;

pest: true;

s: 0;

try 1,1 ;

if pest true then writeln 'Sorry!No Answer' ;

writeln 'There are ',s,' answers!' ;

close input ;

close output ;

end.

感受:

初始化部分偏长需要改进,文件读入读出,而且考虑到了无解情况,总体比较全面。

第一次自己做对了,好高兴也!



推荐阅读
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文详细介绍了C语言中链表的两种动态创建方法——头插法和尾插法,包括具体的实现代码和运行示例。通过这些内容,读者可以更好地理解和掌握链表的基本操作。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文深入探讨了C++对象模型中的一些细节问题,特别是虚拟继承和析构函数的处理。通过具体代码示例和详细分析,揭示了书中某些观点的不足之处,并提供了更合理的解释。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文总结了Java程序设计第一周的学习内容,涵盖语言基础、编译解释过程及基本数据类型等核心知识点。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • Java 数组及其常用操作
    本文详细介绍了 Java 中的数组类型、定义方法以及常见操作,帮助开发者更好地理解和使用 Java 数组。 ... [详细]
  • Scala与Java的数据类型对比及特性
    本文将深入探讨Scala和Java在数据类型上的差异与相似之处,重点介绍两种语言的基本类型、引用类型及其包装类,并分析它们在面向对象编程中的表现。 ... [详细]
  • 本文详细介绍了C语言中的指针,包括其基本概念、应用场景以及使用时的优缺点。同时,通过实例解析了指针在内存管理、数组操作、函数调用等方面的具体应用,并探讨了指针的安全性问题。 ... [详细]
author-avatar
红太郎的等待_921
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有