pascal问题 急!!!!! 最好在端午节之前编完!!!!各位高手帮帮忙!!!

来源:百度知道 编辑:UC知道 时间:2024/06/23 07:32:09
第一题:牛的速记(shorthand)
奶牛们误解了速记的含义。他们是这样理解的:
给出一个少于250个字母的小写字母串。
找到一个出现次数最多的字母,将该字母从字母串中统统删去,如果出现次数最多的字母不止一个,就删去在字母表中靠前的一个,即序号小的那个,已知a的序号为97,b的序号为98,c的序号为99,以此类推。
然后输出这个字符串。重复上面的操作,直到字符串中没有字符。当然,你不应该输出最后的空串。
虽然他们误解了,但是这却是一个非常好的程序设计想法。用你的程序实现这个过程!
输入格式:
输入文件包含一行,即这个字符串。
样例输入:(shorthand.in)
maryhadalittlelambitsfleecewaswhite
输出格式:
一些连续的字符串(如题目中描述的),每行一个字符串。
样例输出:(shorthand.out)
mryhdlittlelmbitsfleecewswhite
mryhdlittllmbitsflcwswhit
mryhdittmbitsfcwswhit
mryhdimbisfcwswhi
mryhdmbsfcwswh
mrydmbsfcwsw
rydbsfcwsw
rydbfcww
rydbfc
rydfc
rydf
ryf
ry
y
第二题:分糖果(split)
曹老师要把N(N<=100)颗糖果分给K(K<=6)个学生,并且要保证每个学生都能分到糖果,问一共有多少种不同的分配方案?
例如:N=5,K=3, 共有6种不同的方案。
5=1+1+3 本方案表示第一和第二个同学各分到1颗糖果,第三个同学分到3颗糖果
5=1+2+2
5=1+3+1
5=2+1+2
5=2+2+1
5=3+1+1
输入文件:
输入文件仅有一行包含两个用空格隔开的自然数N和K,其中N<=100,K<=6。
样例输入:(split.in)

2.
var
m,n:longint;
v:array[0..100,0..6]of longint;
function work(x,y:longint):longint;
var
i:longint;
begin
work:=0;
if (x<y) or (x=0) then exit;
if y=1 then
begin
work:=1;
v[x,y]:=work;
exit;
end;
if v[x,y]>0 then
begin
work:=v[x,y];
exit;
end;
for i:=1 to x-1 do work:=work+work(i,y-1);
v[x,y]:=work;
end;
begin
assign(input,'split.in');
assign(output,'split.out');
reset(input);
rewrite(output);
readln(n,m);
fillchar(v,sizeof(v),0);
writeln(work(n,m));
close(input);
close(output);
end.

program lg1 (input,output);
var ...

有毒

dfrewrewrewrwrwerewrwsdf