热门标签 | 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.

感受:

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

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



推荐阅读
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • 1、字符型常量字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。C语言的字符使用的就是 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 本文探讨了仅对图像文件的内容进行加密的方法,而不加密整个文件。通过这种方式,可以保护图像中的敏感信息,同时保持文件的其他部分不受影响。 ... [详细]
  • Java中的基本数据类型与包装类解析
    本文探讨了Java编程语言中的8种基本数据类型及其对应的包装类。通过分析这些数据类型的特性和使用场景,以及自动拆装箱机制的实现原理,帮助开发者更好地理解和应用这些概念。 ... [详细]
  • C语言中的carry变量解析与应用
    本文详细解释了C语言中carry变量的不同使用场景及其含义,包括作为条件判断、运算结果存储等,旨在帮助初学者更好地理解和运用这一概念。 ... [详细]
  • 本文探讨了如何在Java中使用JAXB解组两个具有相同名称但不同结构的对象。我们将介绍一个抽象类Bar及其具体实现,并展示如何正确地解析XML文档以获取正确的对象实例。 ... [详细]
  • 本文探讨了Hive作业中Map任务数量的确定方式,主要涉及HiveInputFormat和CombineHiveInputFormat两种InputFormat的分片计算逻辑。通过调整相关参数,可以有效控制Map任务的数量,进而优化Hive作业的性能。 ... [详细]
  • 本文介绍了如何利用Java中的URLConnection类来实现基本的网络爬虫功能,包括向目标网站发送请求、接收HTML响应、解析HTML以提取所需信息,并处理可能存在的递归爬取需求。 ... [详细]
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社区 版权所有