厨艺比拼评分表:pascal问题 请给出程序

来源:百度文库 编辑:高校问答 时间:2024/04/29 07:52:16
球迷购票(work3.pas)
[问题描述]
盛况空前的足球赛即将举行。球赛门票售票处排起了球迷购票长龙。
按售票处规定,每位购票者限购一张门票,且每张票售价为50元。在排成长龙的球迷中有m个人手持面值50元的钱币,另有n个人手持面值100元的钱币。假设售票处在开始售票时没有零钱。试问这m+n个球迷有多少种排队方式可使售票处不致出现找不出钱的尴尬局面。
例如当m=3,n=2时,用A表示手持面值50元钱币的球迷,用B表示手持面值100元钱币的球迷,则最多可得到以下5组不同排队方式,使售票处不致出现找不出钱的尴尬局面。
售票处 A A A B B
售票处 A A B A B
售票处 A B A A B
售票处 A A B B A
售票处 A B A B A

[编程任务]
对于给定的m和n的值( 0  m,n  100),编程计算出m+n个球迷有多少种排队方式可使售票处不致出现找不出钱的尴尬局面。

[数据输入]
输入文件(work3.in)只有一行两个数,分别表示m和n的值,用一个空格隔开。

[数据输出]
输出文件(work3.out)只有一个数。

[输入示例]
3 2

[输出示例]
5

作业4、分油问题(work4.pas)
[问题描述]
设有大小不等的3个无刻度的油桶,分别能够存满,X,Y,Z公升油(例如X=80,Y=50,Z=30)。初始时,第一个油桶盛满油,第二、三个油桶为空。编程寻找一种最少步骤的分油方式,在某一个油桶上分出targ升油(例如targ=40)。若找到解,则将分油方法打印出来;否则打印信息“UNABLE”等字样,表示问题无解。

输入输出:
输入文件(work4.in)一行4个整数,依次表示X,Y,Z,targ,每个数之间用一个空格隔开;
输出文件(work4.out)表示解的情况,如果无解输出UNABLE,如果有解,则输出分油方法(每一步三个油桶的状态),如果解不唯一也只有输出任一个解,如:
输入:80 50 30 40
则输出:
80 0 0
50 0 30
50 30 0
20 30 30
20 50 10
70 0 10
70 10 0
40 10 30