作业帮 > 综合 > 作业

pascal中输入n个一位数再输入s,用n个数组成n位数(数不可重复),从大到小排列后,输出第s个数

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 03:59:28
pascal中输入n个一位数再输入s,用n个数组成n位数(数不可重复),从大到小排列后,输出第s个数
先输入n,再输入n个数
可能会组成100位数
你没说数据范围.如果s比较小的话,用这个程序就行了:
program example;
var
x,i,n,s:byte;
a:array[1..256]of byte;
s:array[0..9]of byte;
procedure print;
begin
for i:=1 to n do write(a[i]);
halt;
end;
procedure search(x:byte);
var i:byte;
begin
if x>n then begin
if s=1 then begin print else begin dec(s);exit;end;
for i:=0 to 9 do
if s[i]>0 then
begin
a[x]:=i;
dec(f[i]);
search(x+1);
inc(f[i]);
end;
end;
begin
fillchar(s,10,0);readln(n,s);
for i:=1 to n do begin
read(x);
inc(s[x]);
end;
searc(1);
end.
再问: 是search(1) 可能会超过10000000000000000000000000000000000000000000000000000000000000000